web-dev-qa-db-ja.com

.svcファイルを生成するにはどうすればよいですか?

最初のWCFサービスを作成し、コンピューターでテストしたところ、機能します。

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

これでIISを搭載した実サーバーでこれをホストするときが来たので、IISは着信呼び出しを受信するときに.svcファイルを検索します。

ここに私が見つけたものがあります:

IISでホストされるWCFサービスは、IISアプリケーション内の特別なコンテンツファイル(.svcファイル)として表されます。このモデルは、ASMXページが表される方法に似ています。 IIS .asmxファイルとしてのアプリケーション。svcファイルには、WCF固有の処理ディレクティブ(@ServiceHost)が含まれています。

誰かがこのファイルを作成してホストできるようにする方法を教えてもらえますか?

ありがとう!

22
TheGateKeeper

覚えておく必要があるのは、IISは第一にWebサーバーであり、次にWCFホストであるということです。

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

SVCファイルが実行しているのは、/x/y/z.svcサーバー側のページとコンテンツファイルだけでなく、lot以上の機能を備えたWCFサービスがあります。そのため、起動して利用可能にし、着信接続を処理できるようにしてください。

これが独自の専用ポートでホストされているWCFサービスである場合、これは別の話になります。/Styles/base.css に加えて /MyService/GetSomeObject/

21
Brad Christie

IISホスト.svcファイルは、 @ ServiceHost ディレクティブと属性、Service

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

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

new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName ));

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

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

以下を確認してくださいmsdn-IISがホストするWCFサービスの展開

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

13
Min Min