2

我正在尝试在 .NET 4.0 中使用 WCF 的发现机制。它在 Windows 7 上工作,但在 XP 机器上失败,并出现套接字异常,说“请求的地址在其上下文中无效”(端点是 soap.udp://239.255.255.250:3702)。

Windows 7 vs XP 是红鲱鱼吗?netstat 似乎没有显示任何冲突。我在这里想念什么?

我创建了一个简化的测试服务,使用以下配置显示问题:

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata/>
          <serviceDiscovery />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior>
          <endpointDiscovery />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="HelloWorldService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/Demo"/>
          </baseAddresses>
        </host>
        <endpoint kind="mexEndpoint" />
        <endpoint kind="udpDiscoveryEndpoint" />
        <endpoint contract="Test.IHelloWorld" 
                  address="/Hello" 
                  binding="basicHttpBinding" />
      </service>
    </services>
  </system.serviceModel>
</configuration>
4

2 回答 2

1

Microsoft Connect上记录了一个问题。不幸的是,目前没有解决方法,微软的回应是

当您尝试将套接字绑定到无效的 IP 地址时,通常会遇到您提到的异常。您能否检查一下,如果可能,请尝试使用不同操作系统的机器。目前,XP 上的 WCF 发现功能没有已知限制。

于 2011-01-22T19:12:34.030 回答
0

XP 机器是否在防火墙或路由器后面?具体来说,地址239.255.255.250是真的属于XP机器,还是真的使用了NAT地址?尝试运行 ipconfig 以查看它认为它有什么。

于 2011-01-22T19:35:03.147 回答