通过Windows 8应用程序调用WCF服务时解决连接问题

时间:2015-04-13 17:03:39

标签: c# wcf windows-8.1

我试图通过我创建的Windows 8.1应用程序调用WCF服务。但是当我打电话给它时,我得到了例外:

  

发生了一个或多个错误

     

无法连接到远程服务器

     

http://theRequestedService.svc没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。

     

尝试以其访问权限[theIPAddress:thePortNumber]

禁止的方式访问套接字

我已经检查了服务的设置,它们似乎没问题,并检查了我是否可以通过以下方式访问它:

  • 通过浏览器访问(成功)
  • 通过控制台应用程序访问(成功)
  • 运行Fiddler4和我的Windows 8应用程序(成功)
  • 直接从应用程序访问(falied)

注意:我运行fiddler4尝试获取一条错误消息,告诉我解决方案

我以为我可能更改了项目中的设置,因此创建了一个新的测试项目,但我遇到了同样的问题。

异常消息似乎是自解释的,为什么我能够通过其他方法成功连接但不能通过应用程序连接?以及需要采取哪些步骤来解决这个问题?

我的连接代码(如果这有助于解决问题)

class ConnectionManager
{
    public static ConnectionStatus IsConnected()
    {
        ConnectionProfile connections = NetworkInformation.GetInternetConnectionProfile();

        ConnectionStatus result = (connections != null && connections.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess) ? ConnectionStatus.NotSet : ConnectionStatus.NoInternet;

        if (result == ConnectionStatus.NotSet)
        {
            CommonFunctionsClient client = new CommonFunctionsClient();

            try
            {
                client.ChannelFactory.Endpoint.Binding.SendTimeout = TimeSpan.FromMilliseconds(3000);
                if (client.PingAsync().Result)
                    result = ConnectionStatus.Connected;
                else
                    result = ConnectionStatus.NoWCF;
            }
            catch (Exception ex)
            {
                throw ex;
                //result = ConnectionStatus.NoWCF;
            }
        }

        return result;
    }
}

public enum ConnectionStatus
{
    Connected,
    NoWCF,
    NoInternet,
    NotSet
}

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我下载了HtmlAgilityPack HtmlAgilityPack found here from nuGet

我猜错误是由于x-path的问题。

我承认这远不是一个完整的答案,但如果遇到同样的事情,它可能有助于某人解决问题。

希望有人可以提供此解决方案有效的原因,或者更好地解决此问题。