“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 的快速解决方案
-
如有必要,通过运行 ipconfig 来获取开发计算机的 IP 地址。
-
找到 IIS Express 的配置文件 applicationhost.config,它位于文件夹 %USERPROFILE%\<your user name>\Documents\IISExpress\config\。USERPROFILE 环境变量通常具有 C:\Users 值。
-
使用记事本或其他文本编辑器打开 applicationhost.config,并作出以下更改。
-
找出 Web 服务 WebServiceForTesting 的 site 元素。
如果您未看到 web 服务的 site 元素,则至少必须部署一次服务才能创建该元素。
-
在 site 元素的 bindings 部分中,复制 binding 元素并将副本直接粘贴在现有的 binding 元素下面,以创建第二个绑定。
-
在新的 binding 元素中,用计算机的 IP 地址替换 localhost。
-
保存更改。
-
-
以管理员身份运行 Visual Studio,打开 Visual Studio 解决方案。
-
在手机应用项目中,移除对该服务的服务引用(如果您之前添加了它)。添加对重新配置后的 Web 服务的新服务引用。
-
在“添加服务引用”对话框的“地址”框中,用您的开发计算机的 IP 地址替换 localhost。
-
单击“转到”。
WCF 项目中的服务的第二个绑定被发现并显示出来。
-
单击“确定”。
使用开发计算机 IP 地址的新服务引用被添加至 Windows Phone 项目。
-
错误2
“System.ServiceModel.FaultException”类型的异常在 System.ServiceModel.ni.dll 中发生,但未在用户代码中进行处理
解决方案:
-