Формат запроса не распознается для URL, неожиданно заканчивающегося на «/ MyWebService» - PullRequest
3 голосов
/ 13 ноября 2011

Я знаю, что этот вопрос часто задают здесь, я перепробовал все ответы, и ни один из них не работает. Когда я использую веб-сервисы, я не получаю сообщение об ошибке, и оно работает нормально. Но я получаю эту ошибку 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)

Вот как я называю веб-сервис:

$.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";
    }

UPDATE:

Я вижу в своих журналах, что пользовательский агент всегда является переводчиком Google, когда появляется эта ошибка.

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

Вы знаете, как я могу это остановить?

1 Ответ

0 голосов
/ 23 ноября 2011

Учитывая, что ошибка возникает только тогда, когда google translate запрашивает вашу службу, возможно ли, что google translate не выдает POST-запрос, а GET-запрос для вашего метода обслуживания?В случае, если Google Translate использует GET-запрос, ваше решение может быть здесь , чтобы остановить проблему.

...