我们的错误记录器定期接收以下错误:
System.InvalidOperationException:无法识别 URL 意外以“/TheMethodName”结尾的请求格式
引发此错误的原因是对脚本服务的请求使用 GET 方法,并且默认安全设置仅允许 POST 请求。
奇怪的是,在我们的代码中我们调用这个特定服务方法的唯一地方是通过$.ajax
调用,而且它专门使用type: 'POST'
. 应用程序中没有其他地方为此服务发出 GET 请求。
用户界面每 20 秒进行一次 POST 调用以检索一些数据,而 GET 似乎并没有对此进行干扰——它们只是无关紧要的。我查看了 IIS 日志,可以看到正确的 POST 请求,有时还有 GET 请求。
作为一个额外的问题,不仅仅是这个 Web 服务获得了额外的 GET 调用——我们还将这些调用记录到其他几个服务端点。
我的猜测是浏览器或代理服务器或其他东西自己进行这些调用(例如作为预取或某种缓存的一部分),但我没有证据证明这一点。在查看用户代理的错误请求时,它们来自各种浏览器。
有没有其他人以前见过这种情况,或者知道可能是什么原因造成的?