C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2007/03/24 17:26
[ WCFのホストとサービスの分割 ]
WCFのホスティングは、大別して 2種類 3種類あります。ひとつは IIS によるホスティング、もう一つはセルフ ホスティングです。→ さらにWAS ( Windows Process Activation Service ) によるホスティングがありました。
IIS によるホスティングなら Web サイトとして、セルフ ホスティングならコンソールアプリケーションや Windows サービスのプロジェクトとして構築することになるかと思います。

HTTP ( またはHTTPS ) プロトコル以外を使用する場合は クライアントのプロキシ クラスを動的に生成する場合は、WCF サービスを定義したアセンブリを、ホストアプリケーションとクライアントアプリケーションの両方で参照する必要があるので、WCF サービスの定義はクラスライブラリにて行います。 ( まぁ、ホストアプリケーションに直接定義して、クライアントアプリケーションはホストアプリケーション自体を参照設定することもできますけど・・・。 )

ホスティング方法に関わらず、WCF サービスはホストアプリケーションとは切り離して、クラスライブラリにした方がいいかと思います。なぜなら、ホスティング方法が変更になっても、変更作業が容易にできるからです。

セルフ ホスティングの場合、クラスライブラリに切り離した所で何も特別な作業は必要ありません。普通にプログラミングすればいいです。
では IIS によるホスティングの場合はどうかというと、これも特別な作業は必要ありません。
強いて言うなれば、IIS によるホスティングの場合は、 svc ファイルを用意してその中で ServiceHost ディレクティブを記述する必要があるのですが、この時コードビハインドの設定ができます。しかし、 WCF サービスをクラスライブラリとした場合、当然コードビハインドは利用できません。


[ ServiceHost ディレクティブの例 ]
IIS によるホスティングで、クラスライブラリに定義した "YokoKen.WCFServices.TestService" という WCF サービスを使用する場合の、 svc ファイルの記述例を以下に示します。

<% @ServiceHost Service="YokoKen.WCFServices.TestService" %>
見ての通り、特別な記述は何もありません。コードビハインドを利用しないため、Language 属性や CodeBehind 属性は不要です。


[ 参考 ]
Directive Syntax
@ServiceHost
スポンサーサイト



タグ: .NET C# WCF
2007/03/24 15:50
Windows SDK Update for Windows Vistaがリリースされました。
Windows SDK for Windows Vista を既にインストールしてある場合は、先にアンインストールする必要があります。

Download details: Windows SDK Update for Windows Vista


[ 過去の関連記事 ]
C#と諸々 .NET Framework 3.0 正式版 リリース

タグ: .NET C# SDK