0

我已经创建了 WCF 服务来托管在 IIS 上。我正在使用 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

0

我会尝试删除基本 net.tcp 地址并在端点上指定完整地址。

于 2013-04-19T19:10:27.173 回答