当我调用我的WCF服务
时发生这种情况如下:
testWCF
的WCF服务。webWCF
。 将脚本引用作为: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.
答案 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服务。