我将网站从 IIS6 迁移到 Windows Server 2008 R2 IIS7.5。它有一个 asmx Web 服务,在本地运行良好,但从另一台计算机调用时返回此 500 错误:
请求格式无法识别,因为 URL 意外以 /myMethodName 结尾
以前版本中的解决方案是将其添加到 web.config 中以获取所需的协议(通常在生产中省略 HttpGet):
<system.web>
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
<add name="HttpSoap" />
</protocols>
</webServices>
</system.web>
到处都贴有这个信息,包括https://stackoverflow.com/questions/657313/request-format-is-unrecognized-for-url-unexpectedly-ending-in
对于 IIS7.5,这会引发配置错误;我知道此部分不属于这里,但还是尝试了。我还将 asmx 调用归结为一个简单的 hello world。我也用 POST 进行了测试,只是为了消除 GET 的任何问题。
IIS7.5 的等效项是什么? - web.config 格式或按下的 UI 按钮都会非常有用。
谢谢,鲍勃
编辑答案: 从下面的帮助来看,这确实有效 - 它就像它所说的那样进入 system.web;而不是 system.webserver。
答案1
如果您在 IIS 7.5 中进行上述输入时出现“配置错误”,则需要仔细查看该错误。
我有 IIS 7.5,我刚刚尝试使用配置编辑器添加相同的配置,它在默认网站下的 web.config 文件中创建了一个条目。
如果您可以从 IIS 日志文件中发布确切的错误或进行 FREB 跟踪,这将有助于更好地隔离问题。
答案2
请在您的服务器上运行以下命令:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –iru
这将针对特定的 .NET 版本重新配置 ASP.NET 脚本。