WCF和Javascript:找不到


                    

这是在我致电WCF服务</ p>时发生的

如下:</ p>


  1. 以名称 testWCF </ code>的形式在IIS中托管WCF服务。</ li>
  2. Web应用程序名称为 webWCF </ code>。 </ li>
    </ ol>

    将脚本引用设置为: http://localhost/testWCF/mywcf.svc </ code> </ p>

    在JavaScript中,将方法 GetSerivceCharge </ code>称为</ p>

      var x = new thetest.Backoffice.IBackofficeService();
    var y = x.GetSerivceCharge(res);
    函数res(结果){
         警报(结果);
    }
    </ code> </ pre>

    结果如下:</ h3>

      Microsoft JScript运行时错误:Sys.Net.WebServiceFailedException:服务器方法'GetSerivceCharge'失败,出现以下错误:找不到
    
    

    “ / webWCF”应用程序中的服务器错误。
    </ code> </ pre>


      HTTP错误404-找不到。
    </ code> </ pre>
         </ div>

展开原文

原文

this occured when I called my WCF Service

as follows:

  1. hosted WCF Service in IIS in name testWCF.
  2. web application name is webWCF.

gave scriptreference as: http://localhost/testWCF/mywcf.svc

In JavaScript called the method GetSerivceCharge as

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

it results as follows:

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个回答


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

AFAIK,当您要从javascript调用Web服务时使用AJAX。 由于跨域限制,您需要将Web服务和Web应用程序托管在同一域上,或者创建一些代理/网桥以将调用委派给Web服务。</ p>
     </ div>

展开原文

原文

Isn't this a cross domain issue? I see that your WCF web service is hosted in IIS and accessible through http://localhost/testWCF/mywcf.svc while your web application is using the ASP.NET development server which means it is hosted on http://localhost:SOME_PORT/webWCF.

AFAIK, AJAX is used when you want to invoke a web service from javascript. Due to cross domain restrictions you need to have the web service and the web application hosted on the same domain, or create a some proxy/bridge that will delegate calls to the web service.


尝试直接在浏览器的地址栏中输入Web服务URL,然后查看会发生什么情况。</ p>
     </ div>

展开原文

原文

Try typing the web service URL directly into your browser's address bar and see what happens.


也许这是愚蠢的:GetSerivceCharge拼写错误。 尝试GetServiceCharge。 如果不是这样,则应该发布您的Web方法的签名。</ p>
     </ div>

展开原文

原文

Maybe it's this dumb: GetSerivceCharge is misspelled. Try GetServiceCharge. And if that's not it, you should post your web method's signature.


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

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

展开原文

原文

I think you need to add a reference to your WCF in your project.

If you are using VS 2008 try adding a reference to your web service: In solution explorer right click on your project. Then select Add Service Reference. Then click on discover in the dialog that pops up and you should be able to find your WCF service.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐