SharePoint服务WSDL规范

时间:2012-10-25 14:28:33

标签: web-services sharepoint wsdl

点击的原因是什么,例如http:///_vti_bin/UserGroup.asmx?wsdl给出了一个不完整的wsdl规范(如果与http://msdn.microsoft.com/en-us/library/dd965659%28v=office.12%29.aspx比较)?

我的意思是不完整:它不包含一些复杂的类型定义,例如:用户(与完整用户不同),因此这些类型不是由wsdl.exe生成的。

我有一个问题:根据MSDN的规范生成c#web服务存根是否安全,或者由于合同可能发生变化,这种方法很危险?

1 个答案:

答案 0 :(得分:0)

关于WSDL的第一个问题不一样:它确实应该是等价的并且包含所有类型!每当您将/_vti_bin/UserGroup.asmx?wsdl附加到您网站的网址时,SharePoint肯定会显示完整的WSDL,包括复杂的类型定义等。我现在只针对自己的SharePoint实例尝试了它,并返回了WSDL来自http:// mysite.com/ ... snip ... /pierre/_vti_bin/UserGroup.asmx?wsdl与来自http://msdn.microsoft.com/en-us/library/dd965659%28v=office.12%29.aspx的大小几乎相同,并进行快速检查以确保复杂类型在这两个地方都证实了这一点。

回答第二个问题:我认为您不应该根据文档中的WSDL创建Web Service存根和框架。而是使用从您的站点返回的WSDL。如果您没有从SharePoint返回的WSDL中获取所有复杂类型,则应首先解决该问题。

我会尝试的第一件事:下载SOAPui(免费),只需插入以?wsdl结尾的URL并创建示例请求。也许你会遇到访问问题(UAG或其他),但至少你知道WSDL已经很好地形成了。如果SOAPui可以基于WSDL生成客户端代码,您也可以(使用wsdl2java或wsdl2dotnet等价物;我无法记住.net版本的名称)。

是的,从文档中复制WSDL很危险,但我更担心一些缩写或文档过时等等。

至于合同的变更,我从2009年开始使用UserGroup.asmx?wsdl端点,它仍适用于较新版本的SharePoint(即使在升级到SP2010之后)。我使用java作为客户端代码。 Microsoft确实在SharePoint中使用了Web服务,因此可以非常轻松地集成我们的Java堆栈并对SharePoint Web服务进行调用。它也与我们用来测试Web服务的其他工具(如SOAPui等)非常互操作。