我已经在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来托管服务?
如果是,有人可以帮我吗?
答案 0 :(得分:0)
我尝试删除base net.tcp地址并在端点上指定完整地址。