2011-03-06 8 views
1

IIS7.5でカスタムwcfアプリケーション(サーバー)をホストする方法は?私が使用してWCFサーバとしてカスタムWCFのapplicaionを使用しました

ServiceHost<AlertService> alertServiceHost = new ServiceHost<AlertService>(); 
configuredEndpoints = alertServiceHost.Description.Endpoints; 
alertServiceHost.Open(); 

を今、私はIIS7.5での生産上の展開に問題があります。

IISにどのように展開するのか分かりません。私はIIS上でホストするためにsvcファイルを作成しなければならないことを知っているからです。今、wcfサービスとして動作するコンソールアプリケーションしかありません。

IISで展開するにはどうすればよいですか?

ありがとうございます。

答えて

2

IISホスティングシナリオでカスタムサービスホストを使用する場合は、そのタイプのサービスホストを返すカスタムServiceHostFactoryを指定し、そのサービスホストファクトリをSVCファイルに構成する必要があります。

基本的には、カスタムサービスホストファクトリはServiceHostFactoryから降りるとカスタムサービスホストのインスタンスを返す1つのメソッドをオーバーライドする必要があります - の線に沿って何か:

public class MyOwnServiceHostFactory : ServiceHostFactory 
{ 
    protected override ServiceHost CreateServiceHost(Type t, Uri[] baseAddresses) 
    { 
     return new MyOwnCustomServiceHost(t, baseAddresses); 
    } 

    public override ServiceHostBase CreateServiceHost(string service, Uri[] baseAddresses) 
    { 
     // The service parameter is ignored here because we know our service. 
     ServiceHost serviceHost = new ServiceHost(typeof(HelloService), baseAddresses); 
     return serviceHost; 
    } 
} 

そして、あなたのSVCファイルで、今持っている必要があります。

+0

ありがとうございました。私はできるだけ早くそれを試してみます。 btw、私はそれらのタグを入力するための空のSVCファイルを作成する必要があります。それが正しいか? – tong

1

IISでホストする場合は、自分でServiceHostを作成しないでください。これはIISの責任と、.svcファイルが存在する理由です。 Svcファイルはワーカープロセスにどのようなサービスをホストするか指示します。

のSVCファイルは、単純なディレクティブ(マークアップ)で構成されています

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.MyService" CodeBehind="MyService.svc.cs" %> 

は、これはローカルにホスティング.SVCファイルの一例であるサービスを作成していますが、CodeBehind属性を省略して、サービスクラスをホストするためにService属性に完全な形の記述を使用することができます別のアセンブリから。

How to: Host WCF service in IISもチェックしてください。