【问题标题】:Can you use WCF services with Windows Phone 7?您可以在 Windows Phone 7 中使用 WCF 服务吗?
【发布时间】:2010-08-21 19:57:51
【问题描述】:

我只能在网上找到几个人提到这一点,而且对他们来说似乎就像添加服务引用一样简单。

但是,当我尝试为我的 WCF 服务添加服务引用时(该服务在常规控制台应用程序中正常工作,因此我已排除 WCF 存在问题)我收到大量错误。

  • 警告 5 自定义工具警告:未找到与 Silverlight 3 兼容的端点。除非通过构造函数提供端点信息,否则生成的客户端类将不可用。
  • 警告 6 自定义工具警告:调用目标已引发异常。
  • 警告 2 自定义工具警告:无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.DataContractSerializerMessageContractImporter
  • 错误:无法从程序集“System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e”加载类型“System.Runtime.Serialization.DataContractSet”。
  • 警告 4 自定义工具警告:无法导入 wsdl:port 详细信息:导入 wsdl:port 所依赖的 wsdl:binding 时出错。
  • 警告 3 自定义工具警告:无法导入 wsdl:binding 详细信息:导入 wsdl:binding 所依赖的 wsdl:portType 时出错。
  • 错误 7 自定义工具错误:无法为服务引用“ServiceReference”生成代码。有关详细信息,请查看其他错误和警告消息。

我发现第一个错误提到 Silverlight 3 很奇怪,因为我刚刚完全卸载并重新安装了所有开发工具,以确保我使用的是最新版本的 .NET 和 Silverlight。

这些错误与我在尝试创建新 Silverlight 项目并且未选中“启用 WCF RIA 服务”框时看到的错误相似。如果这确实是问题,我还没有找到任何方法来为 WP7 启用它。

非常感谢各位学者先生(和女士们)的任何帮助。

【问题讨论】:

    标签: c# .net silverlight wcf windows-phone-7


    【解决方案1】:

    我遇到了完全相同的错误,并将集合类型更改为 System.Collections.Generic.List 而不是 System.Collections.ObjectModel.ObservableCollections。这很奇怪,因为我什至没有选中“始终生成消息合同”复选框。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      嗯,我只是通过取消选中“重用类型 ....”框来更改服务参考配置,然后更新工作并生成了服务配置文件。不确定这是否对您有帮助?

      【讨论】:

      • +1,我遇到了 MS 翻译服务的这个问题,这似乎解决了它
      【解决方案3】:

      请记住,Silverlight - 即使对于使用 Silverlight 3 专用版本的 Windows Phone - 也不能与所有 WCF 服务绑定/端点一起使用,而是仅支持一个子集(例如,不包括 WS-HTTP 绑定。)您最简单的选择是使用 Visual Studio 中的“启用 Silverlight 的 WCF 服务”模板(在 Add/New Item/Silverlight 下)为 Silverlight 应用程序创建 WCF 服务。

      Silverlight WCF 团队博客中的这篇博文 (http://blogs.msdn.com/b/silverlightws/archive/2009/03/20/what-s-new-with-web-services-in-silverlight-3-beta.aspx) 应该能够阐明这些可能性。您可能想查看他的整个博客 (http://blogs.msdn.com/b/silverlightws/),因为它有一些有趣的操作方法和问题文章。

      【讨论】:

        【解决方案4】:

        当您以管理员权限运行 Visual Studio 时出现此问题。解决方法是在没有管理员权限的情况下运行 Visual Studio,添加将生成代理类的 Web 服务引用并关闭解决方案。使用管理员权限在 Visual Studio 中再次打开项目解决方案。已在 Microsoft Connect 中归档错误报告。

        https://connect.microsoft.com/VisualStudio/feedback/details/624984/error-warnings-when-adding-web-reference-on-windows-phone-7-project?wa=wsignin1.0

        【讨论】:

        • 我在开发带有 Windows Azure 后端的 Windows Phone 7 应用程序时遇到了这个问题。 Windows Azure 本地开发结构要求您以管理员身份运行。谢谢肯!
        【解决方案5】:

        是的,这是一个奇怪的错误。您将能够返回字符串、整数等,但其他任何东西,如 ArrayList 等,您都会收到此错误。

        您的代码没有问题,只是 VS 有一个错误。微软已经修复了它(检查服务包),但如果你正在为 Windows Phone 7 编程,这个错误仍然存​​在。

        您已删除服务,然后删除 Bin 和 Obj 文件夹。保存并关闭 VS。然后重新启动项目,添加服务引用(不要调试/运行应用程序)。哦,是的,请先备份。应该没问题。每次更新服务时,您可能都必须重复此过程。

        这应该可以解决它,如果没有,您可能必须打开一个新项目,或者如果可能重新创建 Web 服务。

        【讨论】:

          【解决方案6】:

          答案是肯定的,您可以从 WP7 访问 WCF 服务,并且就像之前的海报指出的那样,它只支持 WS-HTTP。如果您尝试访问 Silverlight 应用程序的 WCF 服务,那么您需要做一些事情:

          1. 将您的 Silvleright 工具包更新到最新版本。从 Codeplex 获取它
          2. Microsoft.ServiceModel.DomainServices.Hosting 的引用添加到您的 silverlight 项目。
          3. 转到 Web.Config 并添加soap端点:

            端点>

            不用担心“system.serviceModel”警告;忽略它

          4. 添加服务引用。 “但是,哪个uri?”你问。您的服务地址是这个:[namespace of your ria service]-[classname of your ria service].svc,其中. 替换为-。因此,如果我在我的 SL 应用程序的 Services 目录中创建了我的服务,并且命名空间如下所示:

            命名空间 myApplication.Web.Services { [启用客户端访问()] 公共类 SuperService ....

          那么地址就是:

          http://localhost[:port]/Services/myApplication-Web-Services-SuperService.svc
          

          让工具完成剩下的工作。如果您遇到一些时髦的错误,请保存并关闭 VS 并重新开始,一切正常。

          我希望这是您正在寻找的答案。

          【讨论】:

            【解决方案7】:

            以下解决了我的问题:

            我创建了一个新的 WP7 项目,添加了 wcf 服务。

            然后我将 Service References 文件夹复制到给我这个问题的项目目录中,然后重新启动 Visual Studio 并构建应用程序。

            您应该在Reference.cs 中看到命名空间错误;只需将命名空间更改为当前项目命名空间即可。

            【讨论】:

              猜你喜欢
              • 2013-05-09
              • 1970-01-01
              • 1970-01-01
              • 2013-04-14
              • 2014-01-14
              • 1970-01-01
              • 2011-07-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多