对WCF的jQuery JSONP调用在IIS 5.1中获得404

时间:2011-05-12 12:52:26

标签: jquery wcf iis jsonp

所以,是的,这是我第二次WCF部署当晚头痛(with this being the first)。

基本上,从最后一个问题开始,我成功地将一个简单的WCF服务部署到IIS 5.1上托管的登台服务器。现在的问题是,使用vanilla SOAP的服务端点正在运行,而那些利用JSONP调用的服务端点正在抛出404错误。

我正在使用jQuery的原始.ajax()函数通过JSONP调用我的.svc,例如:

$.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可能会与解析JSONP网址混淆?老实说,我不太确定。

有关于此的任何想法吗?

0 个答案:

没有答案