WCF和Javascript:找不到

时间:2009-07-18 11:41:23

标签: ajax wcf

当我调用我的WCF服务

时发生这种情况

如下:

  1. 在IIS中托管名为testWCF的WCF服务。
  2. 网络应用程序名称为webWCF
  3. 将脚本引用作为:http://localhost/testWCF/mywcf.svc

    在JavaScript中将方法GetSerivceCharge称为

    var x = new thetest.Backoffice.IBackofficeService();
    var y = x.GetSerivceCharge(res);
    function res(result) {
        alert(result);
    }
    

    结果如下:

    Microsoft JScript runtime error: Sys.Net.WebServiceFailedException: The server method 'GetSerivceCharge' failed with the following error: Not Found
    
    Server Error in '/webWCF' Application.
    

    HTTP Error 404 - Not Found.
    

4 个答案:

答案 0 :(得分:0)

这不是跨域问题吗?我看到您的WCF Web服务托管在IIS中,并且可以通过http://localhost/testWCF/mywcf.svc访问,而您的Web应用程序正在使用ASP.NET开发服务器,这意味着它托管在http://localhost:SOME_PORT/webWCF上。

当您想从javascript调用Web服务时,使用AFAIK,AJAX。由于跨域限制,您需要将Web服务和Web应用程序托管在同一个域中,或者创建一个将调用委托给Web服务的代理/网桥。

答案 1 :(得分:0)

尝试直接在浏览器的地址栏中输入网络服务网址,看看会发生什么。

答案 2 :(得分:0)

也许这就是这个哑巴:GetSerivceCharge拼写错误。试试GetServiceCharge。如果不是这样,你应该发布你的网络方法的签名。

答案 3 :(得分:0)

我认为您需要在项目中添加对WCF的引用。

如果您使用的是VS 2008,请尝试添加对您的Web服务的引用: 在解决方案资源管理器中右键单击您的项目。然后选择Add Service Reference。然后在弹出的对话框中单击“发现”,您应该能够找到您的WCF服务。