我在服务库中有一个WCF服务,并且我试图在WCF服务应用程序中托管它。我相应地修改了.svc文件
<%@ ServiceHost Language="C#" Debug="true" Service="Mandrake.Service.OTAwareService" Factory="Mandrake.Service.OTServiceHostFactory" %>
我将最初位于服务库的app配置中的内容添加到服务应用程序的web.config文件中。我认为它会覆盖库app.config中定义的设置,但是如果我从库中删除app.config文件并使用包含必要端点设置的web.config在IIS上托管服务应用程序,结果证明了这一点。 (之前有效)服务没有开始,并说我没有定义端点。
我的web.config的servicemodel部分如下:
<system.serviceModel>
<serviceHostingEnvironment>
<serviceActivations>
<add service="Mandrake.Service.OTAwareService"
factory="Mandrake.Service.OTServiceHostFactory"
relativeAddress="OTService.svc"/>
</serviceActivations>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior name="StandardBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Mandrake.Service.OTAwareService" behaviorConfiguration="StandardBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8062/OTService"/>
</baseAddresses>
</host>
<endpoint address="" binding="netTcpBinding" name="TcpEndpoint" contract="Mandrake.Service.IOTAwareService" />
<endpoint address="mex" binding="mexTcpBinding" name="MetadataEndpoint" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
我可以通过服务应用程序中的服务库托管此服务吗?
答案 0 :(得分:1)
很可能您可能没有在托管服务应用程序的网站上启用net.tcp绑定。如果net.tcp存在于绑定列表中,请检入iis。