JQuery JSONP вызов WCF получает 404 в IIS 5.1 - PullRequest
1 голос
/ 12 мая 2011

Так что да, это моя вторая головная боль при развертывании WCF за ночь ( с первым ).

По сути, из этой последней проблемы мне удалось успешно развернуть простую службу WCF на промежуточном сервере, размещенном на IIS 5.1.Проблема в том, что конечные точки службы, использующие ванильный SOAP, работают, а те, которые используют вызовы JSONP, выдают 404 ошибки.

Я использую функцию .ajax() jQuery для вызова моей .svc через JSONPс чем-то вроде:

$.ajax({
    type: 'POST',
    contentType: 'application/json; charset=utf-8',                 
    url : 'http://localhost/wcf/client.svc/test?mycallback=?',
    data : '{}',
    dataType: 'jsonp',
    success: function (m) {                                             
            alert(JSON.stringify(m));       
    },
    error: function (x, s, d) {
            alert(d);
    }
});

... для вызова конечной точки, закодированной как:

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml)]
public void test()
{
    string callback =
        WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["mycallback"];

        HttpContext.Current.Response.Write(
            callback + "({'foo':'bar'})"
            );
}

Очевидно, это нормально работает в моей локальной среде разработчика.Как только я перенесу все это на промежуточный сервер на IIS 5.1 (т.е. вместо этого вызову http://staging:8000/wcf/client.svc/test?mycallback=?), сервер выдаст мне ошибку 404.

Я действительно не знаю, что случилось.Я могу посетить http://staging:8000/wcf/client.svc очень хорошо (и получить отличительную целевую страницу службы WCF), поэтому я знаю служба есть.Я просто думаю, что, возможно, IIS 5.1 путается с анализом URL JSONP?Честно говоря, я не уверен.

Есть идеи по этому поводу?

...