如何在.asmx页面中调用基于SOAP的Web服务?

时间:2011-04-12 19:50:15

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

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

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

  1. 创建一个新的Web服务(我没有问题)
  2. 该服务需要对Sharepoint Web服务进行基于SOAP的调用
  3. 我需要使用该服务
  4. 我需要为SOAP结果添加我的Web服务的其他信息(这里也没问题)
  5. 我遇到的问题是第2点和第3点。我发现大量文章使用WCF来使用基于SOAP的Web服务或使用“Linq”连接到sharepoint等,但这不是我正在寻找的。

    我正在寻找的只是我需要做的一步一步的过程,以推动我朝着正确的方向前进。

    示例:

    1. 添加网络服务参考??
    2. 添加此行代码以创建新的SOAP请求??
    3. 添加这行代码来解析和使用服务??
    4. 非常感谢你提前!!!

      示例代码也将非常受欢迎!

3 个答案:

答案 0 :(得分:4)

这是一个Web服务这一事实并不神奇。只需使用“添加服务引用”,然后将其视为引用Web服务的任何其他代码。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这是关于你要做什么的小教程: http://www.xefteri.com/articles/show.cfm?id=15