【问题标题】:Web References (ASMX) on WinRTWinRT 上的 Web 引用 (ASMX)
【发布时间】:2014-03-31 17:09:13
【问题描述】:

我正在开发适用于 Windows 8.1 的 Windows 应用商店应用程序,并尝试连接到 Web 服务。 此 Web 服务具有 Web 引用和服务引用的客户端实现。但我无法使用服务参考进行连接。

我通过 Web 引用成功地使用了相同的 Web 服务,但令人惊讶的是,在使用 .NET Framework 4.5.1 时无法添加 Web 引用。 (在“服务引用高级选项”对话框中,“添加 Web 引用”按钮不再像以前那样具有兼容性选项)。

由于我正在为 Windows 8.1 进行开发,因此我无法针对任何旧版本的 .NET Framework。 那么,有没有办法在 Windows 8.1 的 Windows 应用商店应用上使用 Web 引用?这是一个错误还是他们刚刚停止支持旧平台?或者,也许我错过了一些东西。 我正在使用 C# 使用 Visual Studio 2013 Express for Windows。

【问题讨论】:

  • Or maybe i'm missing something... - 您似乎将 WinRT 平台与 .Net Framework 混淆了。
  • 也许我是。我之前已经连接到这个 Web 服务,但是在一个针对 .NET 4.5 的 Web 应用程序中。现在我正在开发一个 Windows 应用商店应用程序,但我似乎找不到添加 Web 引用的方法。
  • 当您使用服务引用时,究竟是什么不起作用?
  • 我在下面解释了它以回应 raja 的回答。使用服务引用时,Web 服务的实现一定是错误的。但是,由于 WinRT 不支持 Web 引用(根据 Erik Funkenbusch 的说法),我只需要联系 Web 服务开发人员以获得全新的 WCF 实现。

标签: c# .net windows-runtime asmx .net-4.5


【解决方案1】:

Windows 应用商店应用程序不支持 Web 引用 (.asmx)。对不起,他们不是。它与 .NET 4.5.1 无关,它是 WinRT 框架的限制。您必须将服务引用与 WCF 一起使用。如果您没有它,则必须编写一个包装服务,将您的 asmx 包装到 WCF。

即使是服务引用也不是 100% 支持的。这篇文章对此进行了更多讨论:

http://blogs.msdn.com/b/piyushjo/archive/2011/10/19/wcf-for-metro-apps-supported-functionality.aspx

【讨论】:

    【解决方案2】:

    尝试将 ASMX URL 放入“服务引用”对话框,然后单击“确定”。 无论是 svc 还是 asmx 服务,它都应该能够创建代理。

    【讨论】:

    • 确实如此,我确实可以创建一个服务引用,但我无法使用这些类进行连接(可能是服务器端的错误 WCF 实现),所以我只想添加一个 Web 引用就像我以前在其他项目中一样(.NET 4.5 上的 Web 应用程序),但这似乎不太可能。
    • 如果服务url是基于asmx的,那么图中没有服务端wcf。什么是错误/代码 sn-p 等?
    • 这有点复杂,但我会尽量解释一下自己。使用相同的 url 我可以添加 Web 或服务引用,因此服务器支持这两种实现。问题是,我得到的客户端类略有不同。使用 Web Reference 客户端,我可以通过将其作为参数传递来更改目标 url。使用服务引用客户端时我无法做到这一点(更改端点地址不起作用)。
    • 为什么我需要这样做?出于测试目的,有不同的 url 指向不同的服务器,每个服务器都有不同的数据。所以,我只想使用我知道它们可以工作的相同客户端类,但这只有在我添加 Web 引用时才会发生,而且我似乎在任何地方都找不到该选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多