2012-03-29 18 views
17

最初のWCFサービスを作成し、それを自分のコンピュータでテストしたところ、正常に機能しました。.svcファイルを生成するにはどうすればよいですか?

ファイルは、インターフェイス、そのインターフェイスの実装、およびapp.configファイルです。

IISで実際のサーバーでこれをホストするときが来たので、IISは着信を受信するときにIISが.svcファイルを探すと言われました。ここで

は、私が見つけたものです:IISでホストされて

WCFサービスは、IISのアプリケーション内で特別なコンテンツファイル(.SVCファイル)として表現されています。このモデルは、ASMXページがIISアプリケーション内で.asmxファイルとして表される方法に似ています。 .svcファイルには、着信メッセージに応答してWCFホスティングインフラストラクチャでホストされたサービスをアクティブ化できるようにするWCF固有の処理指令(@ServiceHost)が含まれています。

私はこのファイルを作成してホストすることができますか?

ありがとうございます!

+2

http://msdn.microsoft.com/en-us/library/ms733766.aspx – Reniuz

+0

のでservice.svcは、基本的には、エンドポイントを宣言するための別の方法ですか?その後、app.configの使用は何ですか? – TheGateKeeper

+1

@TheGateKeeper:これはほとんどエンドポイントを定義していますが、実際はそうではありません。 IIS設定は要求駆動型であることを覚えておく必要があります。つまり、.svcを指定するだけで、サービスを希望する場所がIISに通知されます。これがTCPサービスまたはWindowsサービスホスト型ソリューションであれば、動作が異なります。あなたのサービスでウェブページリクエストを共有していることを忘れないでください。 - BTW、Reniuzによるコメントへのフォローアップ:http://msdn.microsoft.com/en-us/library/aa751792.aspx –

答えて

18

念頭に置く必要があることは、IISがまず第一にWebサーバーであり、WCFホストが第二にだということです。

ウェブサーバーの仕事は、着信要求に基づいてデータをレンダリングすることです。このデータのほとんどはコンテンツ(サーバー上のファイルに直接関連付けられた要求パス)ですが、WCFサービスの場合、IISはここからどこに行く必要があるかを知る必要があります(したがってSVCファイルとIISへの "ディレクティブ"あなたのサービスをアップ)。

SVCファイルが実行しているのは、/x/y/z.svcで、lotが可能なWCFサービスが、サーバー側のページとコンテンツファイルだけではありません。ですから、それをスピンアップして利用可能にして、着信接続を処理できるようにしてください。

専用のポートでホストされているWCFサービスの場合は、/MyService/GetSomeObject/に加えて、/Styles/base.cssの追加要求ともはや競合していないため、これは別の話です。

+0

ありがとうございました。 – TheGateKeeper

+0

こんにちは、最後のビットでお手伝いできますか? http://msdn.microsoft.com/en-us/library/ms733766.aspx(手順8)で、service.csクラスにインターフェイスを作成するかどうかを確認するメッセージが表示されます。私は.dllの一部として私のインターフェイスを持っていますが、私はまだこの部分を行う必要がありますか? – TheGateKeeper

+0

名前空間「My.Custom.Assembly.IService」を使用して参照してください –

10

IISホスト.svcファイルは@ServiceHostディレクティブと属性サービスで構成されています。

<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %> 

サービス属性の値は、あなたのサービスの実装のCLRタイプ名です。このディレクティブの使用は、基本的に、自己ホスティングコンソールプログラムで次のコードを使用してサービスホストを作成することと同じです。

new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName)); 

そして、あなた自身がアプリケーションをホストされている場合は、app.configをに、あなたはweb.configファイルであることをもを置くことができるなど、「結合」、「エンドポイント」のようWCF構成を使用しています。 IISでホストされるサービスは、IISの外部でホストされるWCFサービスと同じ構成要素と構文を使用します。 (IISホスティングサービスのベース/エンドポイントアドレスを制御できないものを除いて)プリコンパイルされた.dllファイルをIISサイトのアプリケーションの\ binディレクトリに配置します。

そして、IISでホストされるサービスのアドレスは、.svcファイルのアドレスになります。 http://localhost/Application1/MyService.svc

以下を確認してください。msdn-Deploying an IIS-Hosted WCF Service

http://msdn.microsoft.com/en-us/library/aa751792.aspx

+0

ありがとうございました。 – TheGateKeeper