【问题标题】:A question about WCF when using app.config使用 app.config 时关于 WCF 的一个问题
【发布时间】:2009-05-07 16:49:53
【问题描述】:

我是WCF的初学者,我写了一个简单的例子,我的应用的app.config文件如下:

主持人:

<services>

  <service name="WCFService.Service.CalculatorService" behaviorConfiguration="calculatorBehavior">

    <host>
      <baseAddresses>
        <add baseAddress="http://10.1.9.210:8080/GeneralCalculator"/>
      </baseAddresses>
    </host>

    <endpoint address="" binding ="basicHttpBinding" contract="WCFService.Contract.ICalculator"></endpoint>

  </service>

</services>

<behaviors>

  <serviceBehaviors>
    <behavior name="calculatorBehavior">
      <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
    </behavior>
  </serviceBehaviors>      
</behaviors>    


客户:

<client>

  <endpoint address="http://10.1.9.210:8080/GeneralCalculator/CalculatorService" binding ="basicHttpBinding" contract="WCFService.Contract.ICalculator" />

</client>

当我运行我的应用程序时,出现了一个异常: “由于 EndpointDispatcher 的 AddressFilter 不匹配,收件人无法处理带有 To 'http://10.1.9.210:8080/GeneralCalculator/CalculatorService' 的消息。请检查发送方和接收方的 EndpointAddresses 是否一致。”

我猜我的配置文件有问题,请给我一些提示,

谢谢:)

【问题讨论】:

  • 你的客户端配置是什么?

标签: wcf app-config


【解决方案1】:

试试这个:

<services>

  <service name="WCFService.Service.CalculatorService" behaviorConfiguration="calculatorBehavior">

    <host>
      <baseAddresses>
        <add baseAddress="http://10.1.9.210:8080/GeneralCalculator"/>
      </baseAddresses>
    </host>

    <endpoint address="CalculatorService" binding ="basicHttpBinding" contract="WCFService.Contract.ICalculator"></endpoint>

  </service>

</services>

<behaviors>

  <serviceBehaviors>
    <behavior name="calculatorBehavior">
      <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
    </behavior>
  </serviceBehaviors>

</behaviors>

【讨论】:

  • 请标记为已回答并从所有答案中选择正确答案。谢谢。
【解决方案2】:

您的客户端尝试连接到:

http://10.1.9.210:8080/GeneralCalculator/CalculatorService

当您的服务器在以下位置公开服务时:

http://10.1.9.210:8080/GeneralCalculator

这两个需要匹配! :-)

因此,您可以使用 Rodrigo 的答案并将相对的 address="CalculatorService" 添加到服务器的端点,或者您可以更改客户端的端点以指向与服务器现在公开的相同的 URL。

马克

【讨论】:

    【解决方案3】:

    看起来客户端正在尝试访问以“CalculatorService”结尾的 Uri,而该服务在 Uri 上没有此后缀?更改客户端上的地址以匹配服务的地址。

    【讨论】:

      猜你喜欢
      • 2010-11-25
      • 2023-04-04
      • 2011-03-04
      • 2011-10-12
      • 1970-01-01
      • 2010-12-11
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多