0

我正在编写一个 WCF 解决方案,其中包括一个适用于 Windows RT(Windows Store 应用程序)的移动应用程序。

当我从开发机器运行移动应用程序时,移动应用程序运行良好,WCF 主机在同一台机器上运行。我试图通过远程调试在我的 MS Surface RT 上对其进行测试。这开始起作用了。该应用程序确实在 Surface 上启动,但是一旦我做一些需要它访问 WCF 主机(在开发机器上运行)的事情,我就会得到以下异常:

System.ServiceModel.EndpointNotFoundException was unhandled
Message: An unhandled exception of type 'System.ServiceModel.EndpointNotFoundException' occurred in mscorlib.dll
Additional information: There was no endpoint listening at http://192.168.0.101:8000/Service1 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

没有内在的例外。192.168.0.101 是开发机器的静态IP。

开发机器上禁用了 Windows 防火墙,并且上面没有其他防火墙。我能够从 Surface ping 相同的 IP 地址,所以我知道它可以看到开发机器。

同样,当移动应用程序与 WCF 主机一起在开发机器上运行时,这工作得很好。所以,我不确定问题是什么。

这是在主机中创建端点的代码:

    ServiceHost hostA = null;

    try
    {
        hostA = new ServiceHost(typeof(Service1), new Uri("http://192.168.0.101:8000") );
        hostA.AddServiceEndpoint(typeof(IService1), new BasicHttpBinding(), "Service1");

        hostA.Open();

        Console.WriteLine();
        Console.WriteLine("Host started.  Press Enter to terminate host.");
        Console.ReadLine();

    }
    finally
    {
        if (hostA.State == CommunicationState.Faulted)
            hostA.Abort();
        else
            hostA.Close();
    }

在客户端:

    var myBinding = new BasicHttpBinding();
    var myEndpoint = new EndpointAddress("http://192.168.0.101:8000/Service1");
    var myChannelFactory = new ChannelFactory<ToOrson.IService1>(myBinding, myEndpoint);

    MyService = myChannelFactory.CreateChannel();

问题可能是什么?

4

1 回答 1

0

您是否Private Networks (Client & Server)在应用程序清单中启用了该功能?

<Capabilities>
    <Capability Name="privateNetworkClientServer" />
</Capabilities>
于 2013-01-07T20:19:23.597 回答