【问题标题】:Call a local WebService from .NET c#从 .NET c# 调用本地 WebService
【发布时间】:2016-02-13 02:21:27
【问题描述】:

我想使用来自 webforms .NET c# 应用程序的 WebService 数据。 WS 不是我的,它是由第三人开发的,他给我发了两个文件:.wsdl 和 .xsd。然后我想尝试 WS,并使用“SOAP UI”。我创建了一个加载 .wsdl 文件的 SOAP 项目,并且 .xsd 位于相同的本地路径中。 SOAP UI 可以很好地创建 XML 结构调用,当我将参数放在 XML 调用中时,我也可以从 WS 接收到响应。

很好,现在我需要从我的 .NET c# 应用程序中调用 WS。我使用的是 Visual Studio 2010。

我曾在其他时候将 WS 添加到项目中。首先在Project结构中右键“References”,点击“Add service reference”,最后我把.wsdl本地路径放上去。如果 .xsd 在同一目录中,Visual 会使用 Web 方法找到 WS,我可以正确添加引用。此时,我在项目结构中的“服务引用”目录中有引用,所以看起来一切正常。

当我尝试从任何应用程序页面调用 WS 方法时出现问题,似乎引用无效,并且与 WS 关联的命名空间不存在。

在一个 aspx.cs 文件中,我同意 de ‘using’ 并添加了引用,当我尝试调用 ‘ServiceReference1.’ 时,视觉上没有任何建议,因为命名空间是无效的。

请有什么想法或帮助?如果有必要,我可以显示 .wsdl 内容。

感谢和问候

【问题讨论】:

  • 请尝试改进您的问题,以便清楚地说明您要解决的问题。因为它是写的,很难理解。
  • 我已经改进了这个问题。希望现在可以理解了
  • 这样更好,但是您正在谈论的一些代码可以回答这个问题。

标签: c# asp.net web-services visual-studio-2010


【解决方案1】:

我在以前的项目中做了类似的事情。我正在从网页调用 Windows 服务中托管的 WCF 服务。您可以做到这一点的唯一方法是使用 javascript 在 localhost 上调用服务,但需要进行一些调整才能启用跨域调用和 Web 服务的安全性。如果您希望它通过引用工作,您需要通过已知地址公开您的服务,然后将其导入到您的项目中。

【讨论】:

  • JavaScript 不是从网页调用 WCF 服务的唯一方法。您也可以在代码隐藏中执行此操作。
  • @Tim 从网页 javascript 是唯一的方法。代码隐藏在服务器上执行:)
  • 语义 :) OP 表示他们使用的是 Web 窗体应用程序,因此代码隐藏是一种完全可以接受的调用 Web 服务的方式,并且您也可以避免跨域问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2014-04-16
  • 2013-05-08
  • 2015-12-29
相关资源
最近更新 更多