1

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

这就是我在 MVC 中调用 WS 的方式:

 $('#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 上设置或配置一些东西吗?

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

马尔钦

4

3 回答 3

1

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

于 2013-02-14T08:08:16.743 回答
0

你的网址看起来很奇怪。您是否尝试在发布之前指定绝对 url ( http://example.com/some/path/WebServicePrzeczytany.asmx/HelloWorld )?

于 2013-02-14T08:03:12.117 回答
0

您正在执行一种违反跨域策略的方法,即您正在通过 javascript 调用或执行对 Web 服务的客户端调用。但是,如果您想使用 JSONP 通过 ajax 执行或调用服务,则已经存在现有方法,前提是您满足以下条件:

*您可以控制您的网络服务代码,即您可以修改代码并为 JSONP 自定义它

*您将所有 Web 服务响应包装到 JSONP 回调中。

有关更多信息,请参阅http://api.jquery.com/jQuery.ajax/

如果没有 JSONP,它可以在本地工作,但如果你在现场环境中,那将无法工作。

于 2013-02-14T08:15:27.967 回答