0

IIS でホストする WCF サービスを作成しました。ServiceHostFactory メソッドを使用してサービスをホストしています (Unity を DI として使用)。

HTTP と TCP を介して、複数のバインディングを使用してサービスをホストしたいと考えています。

ベースアドレスを指定しようとしましたが、取得できません。サービスがHTTPスキーマに登録されているため、まだエラーが発生します。

以下のコードスニペットは、あなたとアイデアを与えるかもしれません.

public class MyServiceHostFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(
                                Type serviceType, Uri[] baseAddresses)
    {
        MyServiceHost serviceHost = new MyServiceHost(serviceType, baseAddresses);

        //configure container
        MyFactory.Register();

        return serviceHost;
    }
}

構成ファイル:

<system.serviceModel>    
<services>
  <service name="My.Service.MyService">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:9000/MyService/"/>
        <add baseAddress="net.tcp://localhost:9001/MyService/"/>
      </baseAddresses>
    </host>
    <endpoint address="Question" binding="basicHttpBinding" contract="My.Contract.IQuestionContract" />
    <endpoint address="Answer" binding="basicHttpBinding" contract="My.Contract.IAnswerContract" />
    <endpoint address="Question" binding="netTcpBinding" contract="My.Contract.IQuestionContract" />
    <endpoint address="Answer" binding="netTcpBinding"  contract="My.Contract.IAnswerContract" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="MyServicebehavior">
      <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="True">
</serviceHostingEnvironment>

誰が私に何ができるかを提案できますか?

主なことは、複数のバインディングで ServiceHostFactory を使用してサービスをホストすることは可能ですか?

はいの場合、誰かが私をどのように助けてくれますか?

4

1 に答える 1