绝对路径不适用于WCF服务

时间:2012-09-14 06:13:54

标签: wcf

我在以下位置提供了服务文件。

  

C:\ Documents and Settings \ U16990 \ My Documents \ Visual Studio 2010 \ Projects \ CalculationService \ CalculationService \ CalculationService.svc

当我浏览svc文件时,它运行正常。服务端点如下所示。它目前是用于地址的相对地址。

  <service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint address="CalculationService" behaviorConfiguration=""
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
        contract="ICalculationService" />
  </service>

我的机器的IP地址是10.10.179.180 // InterNetwork AddressFamily

当我更改地址以使用绝对路径时,它会抛出错误:

<services>
  <service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint 
    address="http://10.10.179.180/C:/Documents and Settings/U16990/My Documents/Visual Studio 2010/Projects/CalculationService/CalculationService/CalculationService.svc/CalculationService"
    behaviorConfiguration=""
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
    contract="ICalculationService" />
  </service>
</services>
  

错误::没有协议绑定与给定地址“http://10.10.179.180/C:/Documents和设置/ U16990 /我的文档/ Visual Studio 2010 / Projects / CalculationService / CalculationService / CalculationService.svc / CalculationService”匹配。协议绑定在IIS或WAS配置中的站点级别配置。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

我们可以做些什么来纠正它?

注意:我正在使用 Visual Studio 2010 测试服务。

参考:

  1. Hosting a Simple Wcf Service in Console
  2. error "No protocol binding matches the given address ..."
  3. How to derive a website absolute file path from a WCF service hosted in IIS?

1 个答案:

答案 0 :(得分:3)

端点地址不是文件的位置,而是客户端可以/将要找到服务的URI。你应该使用这样的东西:

<service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint 
        address="http://10.10.179.180/CalculationService/CalculationService.svc"
        behaviorConfiguration="" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
        contract="ICalculationService" />
</service>

在这种情况下,您使用的是完整URI而不是相对URI。在您的客户端中,您必须确保端点引用相同的地址,并且您很高兴。