我们在MOSS 2007上运行一个站点,该站点从客户端调用同一域上的自定义Web服务asmx方法。
在实际网站上,请求被重定向到以下网址:
http:// [domain] /_layouts/error.aspx?ErrorText= 无法识别以%27%2FIsSuspectWaterLevel%27结尾的网址请求格式。
我们已经将以下内容添加到网站web.config中,没有任何乐趣:
<system.web>
<webServices>
<protocols>
<add name="HttpSoap" />
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>
...
</system.web>
有趣的是,我们在测试服务器上没有这个问题,它应该与实时服务器完全相同。
关于其他变量可能在这里发挥作用的任何想法?
提前感谢任何想法, 加文
更新
致电
的http:// [域] /_vti_bin/Custom/CustomFunctionality.asmx的 / IsSuspectWaterLevel
失败,我仍然可以访问
的http:// [域] /_vti_bin/Custom/CustomFunctionality.asmx的 OP = IsSuspectWaterLevel
虽然当我以相同的方式调用方法时它失败了。
我想知道这是否有助于更好地解决这个问题?
另一个更新:
我刚刚在开发服务器上发现了同样的错误。从GAC中删除应用程序DLL然后重新复制它解决了问题。实时服务器在初始部署时测试得很好,所以可能是Sharepoint在一段时间内失去一些参考的问题?抓住吸管是非常混乱的行为!
又一次更新:
似乎每当我触摸(打开并保存)12个Hives中的web.config文件时,问题会再次修复一段时间,但过了一段时间后问题又回来了。我想知道这与回收的应用程序池有什么关系?
C:\ Program Files \ Common Files \ microsoft shared \ Web Server Extensions \ 12 \ ISAPI \ web.config
答案 0 :(得分:1)
这个问题的优雅解决方案对我们有用:我们已经将Web服务asmx端点替换为Web处理程序ashx端点。出于某种原因,这不会遇到同样的问题。
我猜这是因为在一段时间之后会出现一些问题,导致网址错误地解决。我怀疑网址中的.asmx之后的/是主题。实现的ashx端点完全依赖于url参数和发布的数据。
显然,对于可能遇到相同问题的其他人而言,这种解决方法并不总是一个选项,因为我们正在丢失许多预先烘焙到asmx端点的丰富的Web服务功能。
不幸的是,由于我们已经离开了Web服务asmx方法,我将无法测试人们现在可能提出的任何其他解决方案。遗憾。