【问题标题】:Sharepoint denying access to asmx methodsSharepoint 拒绝访问 asmx 方法
【发布时间】:2011-07-28 05:15:43
【问题描述】:

我们有一个在 MOSS 2007 上运行的站点,它从客户端调用同一域上的自定义 Web 服务 asmx 方法。

在实时站点上,请求被重定向到以下网址:

http://[domain]/_layouts/error.aspx?ErrorText=请求格式无法识别,因为 URL 意外以 %27%2FIsSuspectWaterLevel%27 结尾。

我们在网站 web.config 中添加了以下内容,没有任何乐趣:

  <system.web>
    <webServices>
      <protocols>
        <add name="HttpSoap" />
        <add name="HttpGet" />
        <add name="HttpPost" />
      </protocols>
    </webServices>
  ...
  </system.web>

有趣的是,我们在测试服务器上没有这个问题,它应该与实时服务器完全相同。

对这里可能存在的其他变量有什么想法吗?

提前感谢您的任何想法, 加文

更新:

打电话时

http://[Domain]/_vti_bin/Custom/CustomFunctionality.asmx/IsSuspectWaterLevel

失败,我仍然可以访问

http://[Domain]/_vti_bin/Custom/CustomFunctionality.asmx?op=IsSuspectWaterLevel

虽然当我以同样的方式调用该方法时它失败了。

我想知道这是否有助于进一步阐明这个问题?

另一个更新:

我刚刚在开发服务器上观察到了同样的错误。从 GAC 中删除应用程序 dll,然后重新复制它解决了这个问题。实时服务器在初始部署时测试良好,所以也许 Sharepoint 会随着时间的推移失去一些参考?抓着稻草是非常令人困惑的行为!

又一次更新:

似乎每次我在 12 Hives 中触摸(打开并保存)web.config 文件时,问题都会再次修复一段时间,但一段时间后问题又出现了。不知道是不是和app pool被回收有关系?

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\ISAPI\web.config

【问题讨论】:

    标签: web-services sharepoint-2007


    【解决方案1】:

    对我们有用的这个问题的一个不优雅的解决方法:我们已将 Web 服务 asmx 端点换成了 Web 处理程序 ashx 端点。由于某种原因,这不会遇到同样的问题。

    据此猜测,一段时间后出现了一些问题,导致 url 解析不正确。我怀疑网址中 .asmx 之后的 / 是罪魁祸首。实现的 ashx 端点纯粹是处理 url 参数和发布的数据。

    显然,对于可能遇到相同问题的其他人来说,这种解决方法并不总是一种选择,因为我们正在失去许多预先嵌入到 asmx 端点的丰富 Web 服务功能。

    很遗憾,随着我们不再使用 Web 服务 asmx 方法,从现在开始,我将无法测试人们可能提出的任何其他解决方案。对不起。

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2021-09-21
      相关资源
      最近更新 更多