【发布时间】:2015-01-21 12:52:39
【问题描述】:
我在服务库中有一个 WCF 服务,我正在尝试将它托管在一个 WCF 服务应用程序中。我相应地修改了 .svc 文件
<%@ ServiceHost Language="C#" Debug="true" Service="Mandrake.Service.OTAwareService" Factory="Mandrake.Service.OTServiceHostFactory" %>
然后我将最初在服务库的应用程序配置中的内容添加到服务应用程序的 web.config 文件中。我认为它会覆盖库的 app.config 中定义的设置,但结果是,如果我从库中删除 app.config 文件并在 IIS 上使用包含必要端点设置的 web.config 托管服务应用程序(以前可以使用) 服务没有启动并说我没有定义端点。
我的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>
有没有办法可以在我的服务应用程序中从服务库中托管此服务?
【问题讨论】:
-
错误是说没有定义端点还是找不到端点?
-
我的错误是:服务无法启动。该服务没有定义端点。请在配置文件中为服务添加至少一个端点,然后重试。
-
很可能您在托管服务应用程序的网站上未启用 net.tcp 绑定。如果 net.tcp 在绑定列表中,请检查 iis。
-
你是对的,net tcp 是不允许的,我没有考虑过,因为到目前为止我将它托管在一个单独的应用程序中,所以这不是问题。另外,我必须意识到,使用 IIS express 我无法做到这一点......顺便说一句,如果您将您的建议作为答案发布,我可以接受它