Web services 无法识别意外以';结尾的URL的请求格式/MyWebService';

Web services 无法识别意外以';结尾的URL的请求格式/MyWebService';,web-services,asmx,Web Services,Asmx,我知道这是一个经常在这里被问到的问题,我尝试了所有的答案,但没有一个有效。当我使用这些Web服务时,我没有收到任何错误消息,而且工作正常。但我每天都会犯10-20次这样的错误。所以有人确实得到了这个错误,但我无法重现它 这是错误堆栈跟踪。有什么帮助吗 Exception stack trace: at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext c

我知道这是一个经常在这里被问到的问题,我尝试了所有的答案,但没有一个有效。当我使用这些Web服务时,我没有收到任何错误消息,而且工作正常。但我每天都会犯10-20次这样的错误。所以有人确实得到了这个错误,但我无法重现它

这是错误堆栈跟踪。有什么帮助吗

Exception stack trace: 
   at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
   at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
   at System.Web.Script.Services.ScriptHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String pathTranslated)
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
这是我如何称呼web服务的:

$.ajax({
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    url: 'MyWebService.asmx/MyWebService',
    data: '{"id":"' + id+ '"}',
    dataType: 'json',
    success:
        function(msg) {
            // Do something
        },
    error:
        function(XMLHttpRequest, textStatus, errorThrown) {
            // Do something
        }
});
    [WebMethod(EnableSession = true)]
    public string MyWebService(int id)
    {
       return "Something";
    }
这是我非常简单的web服务:

$.ajax({
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    url: 'MyWebService.asmx/MyWebService',
    data: '{"id":"' + id+ '"}',
    dataType: 'json',
    success:
        function(msg) {
            // Do something
        },
    error:
        function(XMLHttpRequest, textStatus, errorThrown) {
            // Do something
        }
});
    [WebMethod(EnableSession = true)]
    public string MyWebService(int id)
    {
       return "Something";
    }
更新:

我在日志中看到,出现此错误时,用户代理始终是Google translate

http://translate.googleusercontent.com/translate_c?hl=es&prev=/search?q=test&hl=es&client=safari&tbo=d&rurl=translate.google.es&sl=en&u=http://www.mydomain.com&usg=ALkJrhhcOM9LJgtG-RhFx1XSQw-g4h_tbQ


你知道我怎么能阻止这种情况吗?

考虑到只有当google translate请求你的服务时才会发生错误,google translate可能不会向你的服务方法发出POST请求,而是GET请求吗?如果google translate使用GET请求,您的解决方案可能会停止该问题。

您是否也可以发布错误消息,不仅仅是堆栈跟踪?错误消息的标题是
请求格式,无法识别以“/MyWebService”
结尾的URL。您能否在iis日志中找到恶意请求并将其与错误关联?也许你的URL有问题。我用一些新信息更新了我的问题。@Martin你找到解决方案了吗?我也有同样的问题。当我在启用FireBug的浏览器中打开google translate的URL时,我看到一些COR和“操作不安全”错误正在阻止我的js脚本…谢谢你的回答,但我的web.config中已经有这两个错误:(