WCF .svc 有效,但配置文件无效
本文关键字:配置文件 无效 svc 有效 WCF | 更新日期: 2023-09-27 17:57:16
我正在尝试使用配置文件来定义端点和服务信息。我有一个非常简单的代码,其中包含单向服务和双工服务。当我没有尝试更改配置文件时,OneWay 工作了。
现在,我想使用配置文件来定义这两个服务。
服务1协定名称为IOneWayService
,服务2协定名称为ICallBackService
。
两者都在其各自的具体类名 OneWayService.svc.cs
和 CallBackService.svc.cs
中实现了代码。
此时的配置文件如下所示:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add relativeAddress="OneWayService.svc" service="TestingWcf.OneWayService"/>
<add relativeAddress="CallBackService.svc" service="TestingWcf.CallBackService"/>
</serviceActivations>
</serviceHostingEnvironment>
<services>
<service name="TestingWcf.OneWayService">
<endpoint address="http://localhost:60847/One"
binding="wsHttpBinding"
contract="IOneWayService" />
</service>
<service name="TestingWcf.CallBackService">
<endpoint address="http://localhost:60847/Two"
binding="wsHttpBinding"
contract="IDuplexService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
尝试通过此网址执行OneWayService时,我总是遇到此错误:http://localhost:60847/OneWayService.svc
合约名称"IOneWayService" 在列表中找不到 服务实施的合同 "单向服务"。
有人知道为什么吗?
编辑
我已经从 servinceHostingEnvironment
标签中删除了multipleSiteBindingsEnabled= true
,并在合同中添加了命名空间,我可以运行 OneWayService。
此外,双工不能绑定到wsHttpBinding
。我不得不将其更改为NetTcpBinding
.但是,我在双工中遇到了另一个错误:
配置绑定扩展 'system.serviceModel/bindings/NetTcpBinding' 找不到。验证此 绑定扩展正确 注册于 system.serviceModel/extensions/bindingExtensions 并且拼写正确。
从此,我又迷失了。
编辑 2
我在绑定名称中出错。我有一个大写字母用于NetTcpBinding,它确实需要小写:netTcpBinding
。但是,它仍然不起作用,现在我有:
协议"net.tcp"不是 支持。>.
好的,这就解释了 - Visual Studio默认使用内置的Cassini网络服务器(除非你已经切换到使用IIS Express) - 并且该服务器不支持纯http之外的任何内容。
卡西尼不支持net.tcp和类似的东西。
您将需要开始使用单独的 IIS 虚拟目录,并首先启用所有必要的支持内容(在"添加/删除 Windows 功能"对话框中)