次のレイアウトの 2 つのプロジェクトがあるとします。
- プロジェクト「ウェブ」
- global.asax (eg 内の登録先はこの先を考えました
void Application_Start(System.Object sender, System.EventArgs e
) - web.config
- global.asax (eg 内の登録先はこの先を考えました
- プロジェクト「wcf」
- DemoService.cs
- IDemoService.cs
web.config
このようになります
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="fooBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="wcf.DemoService"
behaviorConfiguration="fooBehavior">
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<endpoint address=""
binding="wsHttpBinding"
contract="wcf.IDemoService" />
</service>
</services>
</system.serviceModel>
</configuration>
だから...今...どこか(上記のように私が考えたglobal.asax
)に登録する必要があります.URIを参照すると wcf.DemoService
解決され、mex-requestの場合wcf.IDemoService
は属性を読み取ってWSDLを取得するために解決されます。
これは通常、.svc
ファイルを作成し、最初の行にヘッダーを配置することによって行われます。たとえば、次のようになります。
<%@ ServiceHost Language="C#" Debug="true" Service="wcf.DemoService" %>
たとえば、コンソールアプリケーションでは
var serviceHost = new ServiceHost(typeof (wcf.DemoService));
serviceHost.Open();
host
これを要素内の要素と組み合わせてURIservice
を指定するか、別の ctor-overload を使用しますServiceHost
しかし、静的登録 (またはweb.config
IIS 7.5 で機能する任意の登録) を使用したいのですが、これは可能ですか? もしそうなら、どのように?