2013-02-14 195 views
1

我在包含在MVC应用程序中的Web服务中遇到了一个大问题。我制作了一个MVC应用程序,它托管在IIS 7.0上。一切都很完美。比我必须添加Web服务(当然它可能是一个WCF,由WS allready存在)到这个项目。所以在Visual Studio 2010中,我添加了新项目,为当前项目选择了Web服务。在开发机器上,没关系。每个人都很好。但是当我尝试将整个项目发布到IIS(它在另一个服务器上)时,MVC应用程序看不到WS。MVC应用程序中的Web服务

这就是我称之为WS,在MVC:

$('#test').click(function test2() { 
    alert('start'); 

    $.ajax({ 
     type: "POST", 
     url: "/../WebServicePrzeczytany.asmx/HelloWorld", 
     data: "{}", 
     dataType: "xml", 

     success: function suc(msg) { 
       alert("recieved: " + msg.text); 
       }, 
     faild: fail 
    }); 

    alert('stop'); 
}); 

function fail() { 
    alert("doesn't work"); 
}; 

这是jQuery的,正如你看到的。 但我的问题是:为什么它不起作用?我应该在IIS上设置还是配置一些东西?

我会感激任何帮助或线索。

Marcin

+0

检查web borwser控制台和http消息发送/接收,并告诉我们是否有任何错误。 – 2013-02-14 08:00:12

回答

0

您正在做一个方法,这是违反跨域策略,你打电话或通过JavaScript执行客户端调用你的web服务。但是,如果您想要使用JSONP执行或调用服务,则已有方法,前提是您满足以下条件:

* 您可以控制Web服务代码,即可以修改代码并为JSONP

* 将所有webservice响应包装为JSONP回调。

更多信息请参见http://api.jquery.com/jQuery.ajax/

没有JSONP它的工作地方,但如果你是在实际环境中,这不是要去工作。

+0

非常感谢您的帮助。我希望我能理解这一点。 – Marcin 2013-02-15 09:04:04

+0

如果你有麻烦,我可以帮你执行 – 2013-02-15 09:47:40

+0

如果你想要一个示例,请参阅http://stackoverflow.com/questions/14318816/my-javascript-wont-work-as-it-should/14319318#14319318 – 2013-02-20 06:17:18

1

您的网络服务网址不正确。 “/../WebServicePrzeczytany.asmx/HelloWorld”你的应用应该指向已发布的Web服务,而不是像上面那样的相对URL。该网址应该是类似的东西 http://someipaddressordomainname/WebServicePrzeczytany.asmx/HelloWorld