【问题标题】:How do I call a SOAP based Web Service from within a .asmx page?如何从 .asmx 页面中调用基于 SOAP 的 Web 服务?
【发布时间】:2011-04-12 19:50:14
【问题描述】:

我正在尝试使用经典的 .net C# .asmx 页面而不是 WCF 创建一种“引导”Web 服务。 (此项目的业务需求是特定的,不需要 WCF 服务)。

基本上,我正在尝试这样做:

  1. 创建一个新的 Web 服务(我这样做没问题)
  2. 该服务需要对 Sharepoint Web 服务进行基于 SOAP 的调用
  3. 我需要使用该服务
  4. 我需要为我的 Web 服务添加额外的信息到 SOAP 结果(这里也没有问题)

我遇到的问题是第 2 点和第 3 点。我发现很多文章使用 WCF 使用基于 SOAP 的 Web 服务或使用“Linq”连接到共享点等,但这不是我想要的。

我正在寻找的只是一个循序渐进的过程,我需要做些什么来推动我朝着正确的方向前进。

例子:

  1. 添加 Web 服务引用??
  2. 添加这行代码以创建新的 SOAP 请求??
  3. 添加这行代码来解析和使用服务??

提前非常感谢您!!!

示例代码也将不胜感激!

【问题讨论】:

  • 您使用的是什么版本的 SharePoint?

标签: c# .net web-services soap asmx


【解决方案1】:

它是一项网络服务这一事实并没有什么神奇之处。只需使用“添加服务引用”,然后将其视为引用 Web 服务的任何其他代码。

另外,那些编写需求的人是否知道 WCF 服务可以公开一个看起来与 ASMX Web 服务端点完全一样的basicHttpBinding 端点?除了不使用 Microsoft 认为的“遗留技术”之外,它还将受益于 WCF 的所有功能。

【讨论】:

  • 感谢您的回复!!我会向他们提出这一点,看看我们是否可以让事情现代化。同时,由于任何技术更改都需要永远进行,我将如何在我的代码中引用该 Web 服务来实际发送 SOAP 请求,然后使用/解析它?再次感谢。
  • 对不起,我不明白你的意思。这就是您引用 Web 服务的方式。使用“添加服务参考”,然后像往常一样继续。如果需要,您可以使用“添加 Web 引用”,但为什么在不需要的时候倒退呢?
  • 抱歉我的含糊问题。我的意思是如何使用创建的代理来调用 Web 服务并处理响应。我在@Joel C 的回答中的评论所附的教程涵盖了添加对项目的引用后的“下一步”。再次感谢您的回复!
【解决方案2】:

MSDN 上的The SharePoint Developer Center 是参考一般信息、教程等的好地方。Windows SharePoint Services 3 SDK 中的Server and Site Architecture: Object Model Overview 是开始学习 SharePoint 对象模型的好地方,因为您在示例中遇到的术语(SPSite、SPWeb 等)可能会令人困惑。

基本上,您需要将 Web 引用添加到您打算使用的 SharePoint Web 服务。您使用的具体参考将取决于您要完成的工作,a whole list of available Windows SharePoint Services Web Services。这些用于一般 SharePoint 任务,例如与列表和网站交互;还有一整套用于 SharePoint Server 的单独 Web 服务,您可以使用这些服务与业务数据目录、企业搜索以及 SharePoint Server 附带的任何其他功能进行交互,而不是 Windows SharePoint Services。

当您在 Visual Studio 中添加 Web 引用时,它会自动在您的项目中针对远程 Web 服务生成代理,您可以使用生成的代理来做您想做的事情。但是,直接针对 Web 服务工作,几乎所有内容都会返回一个您必须处理的通用 XmlNode,因此,如果您在 .NET 中工作,直接使用 Web 服务的更好选择是下载 SharePoint SDK 和针对服务器对象模型的程序。

如果您最终使用了对象模型,请务必仔细阅读这两篇文章:
Best Practices: Common Coding Issues When Using the SharePoint Object Model
Best Practices: Using Disposable Windows SharePoint Services Objects

【讨论】:

  • 谢谢!我将按照您的建议使用 Sharepoint SDK。如果有人偶然发现了这一点并想看一个使用 C# 来调用 Sharepoint Web 服务的基本教程,请参阅这篇文章:link
【解决方案3】:

以下是有关您正在尝试做的事情的小教程: http://www.xefteri.com/articles/show.cfm?id=15

【讨论】:

  • 感谢您的教程,但我一直在寻找 C# 教程。引用的文章在VB中。
猜你喜欢
  • 1970-01-01
  • 2019-08-31
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2014-02-12
相关资源
最近更新 更多