WP8调用WebService或WCF时遇到的问题及解决方案

WP8 调用WebService 提示错误1

“System.ServiceModel.CommunicationException”类型的异常在 System.ServiceModel.ni.dll 中发生,但未在用户代码中进行处理"


解决方案:(原文MSDN  http://msdn.microsoft.com/zh-CN/library/windowsphone/develop/jj684580%28v=vs.105%29.aspx)

当您在 Visual Studio 中创建 WCF Web 服务时,默认情况下,该服务宿主在 IIS Express,而且仅接受位于http://localhost/ 的连接。面向 Windows Phone OS 7.1 的应用可以与作为 localhost 的开发计算机连接,因为 Windows Phone 7.1 模拟器使用开发计算机的网络连接。但是,Windows Phone 8 模拟器 将在网络上作为独立设备对其本身进行配置。因此,在 Windows Phone 8 模拟器 上运行的应用无法与作为 localhost 的开发计算机连接。

在您可以顺利地从模拟器连接至本地 Web 服务之前,您应作出两项更改:

  • 您必须配置本地 Web 服务和 Web 服务器,以便接受来自网络上其他设备的连接。

  • 您必须配置 Windows Phone 应用中的服务引用,以便通过使用服务正在运行于上的开发计算机的 IP 地址连接至服务。


    使用 IIS Express 的快速解决方案

    1. 如有必要,通过运行 ipconfig 来获取开发计算机的 IP 地址。

    2. 找到 IIS Express 的配置文件 applicationhost.config,它位于文件夹 %USERPROFILE%\<your user name>\Documents\IISExpress\config\USERPROFILE 环境变量通常具有 C:\Users 值。

    3. 使用记事本或其他文本编辑器打开 applicationhost.config,并作出以下更改。

      1. 找出 Web 服务 WebServiceForTesting 的 site 元素。

        如果您未看到 web 服务的 site 元素,则至少必须部署一次服务才能创建该元素。

      2. 在 site 元素的 bindings 部分中,复制 binding 元素并将副本直接粘贴在现有的 binding 元素下面,以创建第二个绑定。

      3. 在新的 binding 元素中,用计算机的 IP 地址替换 localhost

      4. 保存更改。

    4. 以管理员身份运行 Visual Studio,打开 Visual Studio 解决方案。

    5. 在手机应用项目中,移除对该服务的服务引用(如果您之前添加了它)。添加对重新配置后的 Web 服务的新服务引用。

      1. “添加服务引用”对话框的“地址”框中,用您的开发计算机的 IP 地址替换 localhost

      2. 单击“转到”

        WCF 项目中的服务的第二个绑定被发现并显示出来。

      3. 单击“确定”

        使用开发计算机 IP 地址的新服务引用被添加至 Windows Phone 项目。

    PS:需将WCF或WebService网站部署到IIS下,并设置端口,防火墙把端口打开。添加引用时将localhost改为本机ip+端口号 如:192.168.1.119:83

    错误2

    “System.ServiceModel.FaultException”类型的异常在 System.ServiceModel.ni.dll 中发生,但未在用户代码中进行处理

    解决方案:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值