単純な WCF サービスの実装

ここでは単純な WCF サービスを実装します。

WCF はもともと Web サービス専用のフレームワークではありませんが、 WCF を用いると非常に簡単に Web Service を実装できることがわかるはずです。

足し算を行う WCF サービスの作成と設定

例として、足し算を行う Web サービスを実装しましょう。 もちろん足し算みたいな単純な演算をわざわざ外部プログラムを使って行う人はいないですけど、まぁ、コテコテのサンプルっぽいですよね(笑)

サービスの内容

次の内容を ICalc.cs として App_Code ディレクトリに保存します。これがインターフェイス定義です。

using System.ServiceModel;

namespace MyMath
{
     [ServiceContract]
     public interface ICalc
     {
          [OperationContract]
          int Add(int i, int j);
     }
}

サービスの内容を実装するのは次です。次のコードを Calc.cs として App_Code ディレクトリに保存してください。

namespace MyMath
{
     public class Calc : ICalc
     {
          public int Add(int i, int j)
          {
               return i+j;
          }
     }
}

これでメソッド Add を持つ ICalc インターフェイスを実装した Calc クラスが実装できました。

インターフェイス定義の中に、サービスコントラクト (ServiceContract) とかオペレーションコントラクト (OperationContract) という属性が設定されていること以外、 特に変わったことは何もありません。C# を知っている方なら特に何も問題はないはずです。

svc ファイルの配置

上記の Calc クラスを Web サービスとするためには、次の内容の svc ファイル CalcService.svc を作成します。

<%@ ServiceHost Language="C#" Service="MyMath.Calc" %>

ご覧の通りたった一行です。

svc ファイルはクライアントから直接呼び出すので、App_Code ではなく、ブラウザから到達する位置に配置してください。 ASP.NET アプリケーションのルートに置けば良いでしょう。

設定ファイル web.config の配置

Web.Config を次の内容で作成してください。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<system.serviceModel>
		<services>
			<service
				name="MyMath.Calc"
				behaviorConfiguration="CalcBehaviors">
				<endpoint
					binding="basicHttpBinding"
					contract="MyMath.ICalc" />
			</service>
		</services>
		<behaviors>
			<serviceBehaviors>
				<behavior name="CalcBehaviors" >
					<serviceMetadata httpGetEnabled="true" />
				</behavior>
			</serviceBehaviors>
		</behaviors>
	</system.serviceModel>
</configuration>

以上でできあがりです。簡単ですね。

実行

ブラウザから svc ファイルをリクエストすると、成功すると次のような画面が現れるはずです。

WCF サービスの開発

では、次にうまく行かない場合のトラブルシューティング方法や利用方法について説明していきましょう。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 ASP.NET 入門