【问题标题】:Deploy custom web service to sharepoint server(2007/2010)?将自定义 Web 服务部署到共享点服务器(2007/2010)?
【发布时间】:2011-01-04 23:26:21
【问题描述】:

根据MSDN,部署自定义web服务需要创建*wsdl.aspx和*disco.aspx文件,和.asmx一起放在_vti_bin文件夹下(C:\Program Files\Common Files\Microsoft Shared \Web 服务器扩展\14\isapi)。并将dll放在sharepoint虚拟目录根目录的bin文件夹下。它对我来说可以正常工作。

但是,我还发现如果我将 .asmx 文件放在根虚拟目录下而不创建那些 *wsdl.aspx 和 *disco.aspx 文件。与上述方式相比,它也可以工作并且更容易。所以我想知道这种方式的潜在问题是什么?

【问题讨论】:

    标签: sharepoint sharepoint-2007 sharepoint-2010


    【解决方案1】:

    我在 SharePoint 2007 中创建了几个 Web 服务,它们被简单地部署为 http://.../_layouts/mySubFolder/service.asmx。有用!对于 SharePoint,Web 服务的表示层是 HTML 还是 XML 无关紧要(在这两种情况下都必须应用安全性,可以使用 http://server/_layouts/mySubFolder/service.asmxhttp://server/sites/subsite/_layouts/mySubFolder/service.asmx 来解决)

    错误的地方

    • “布局”一词意味着“与外观有关”。当我们谈论 Web 服务时,情况并非如此
    • 当迁移到 WCF 服务发挥作用的 SPS2010 时,情况会有所不同。但是,我还没有玩过SPS2010,还不知道有什么不同。 (在这里讨论一下 - http://blog.mastykarz.nl/wcf-sharepoint-context/

    【讨论】:

    • 谢谢,您链接中的“再次与上下文有关”部分回答了我的问题。
    【解决方案2】:

    如果没有 WSDL 和 DISCO 文件,人们的 Web 服务客户端/消费者可能很难“发现”您的服务合同。如果您不担心,请不要担心。

    【讨论】:

    • 您仍然可以从 ASMX 获取 WSDL
    • 只有在同一个主机尝试访问才能获取。从客户端您将无法通过 ASMX 获取 WSDL。
    【解决方案3】:

    相当老的帖子,但我只是想补充一下,因为我不相信迄今为止的回复提供了有关为什么以这种方式设置 SharePoint 的相关细节。

    之所以将 Web 服务部署到 ISAPI\vti_bin for SharePoint 是因为对此文件夹的请求进行了特定修改,以允许 SharePoint 基于服务的当前虚拟路径为服务构建准确的发现和 WSDL 文件,而不是 IIS 站点中的路径。

    更具体地说,wsdisco.aspx 和 wswsdl.aspx 处理对此虚拟目录的请求,并将调用相关的 disco.aspx 和 wsdl.aspx 以根据当前 SharePoint url 正确生成发现 xml 或 wsdl xml。

    如果您为项目添加http://sharepointsite.com/sitecol/subsite/_vti_bin/lists.asmx 的服务引用,则在该 URL 上发出的请求的上下文将与您期望的 /sitecol/subsite 相关。

    但是,如果您将服务引用添加到 http://sharepointsite.com/sitecol/subsite/_layouts/MyCustSvc.asmx,则上下文将固定为 http://sharepointsite.com/,因为 ASP.NET 的默认 wsdl 生成器不知道 SharePoint虚拟路径。在这种情况下,服务中对 SPContext 的调用将无法按预期工作。

    这里有一篇很好的帖子,其中有解释这一点的示例: Where do you deploy custom SharePoint web service files to?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      相关资源
      最近更新 更多