我目前正在维护和开发一个使用大量Web服务以Ajax方式运行的网站。
服务的注册在aspx中是这样完成的:
<asp:ScriptManagerProxy id="ScriptManager1" runat="server">
<services>
<asp:ServiceReference Path="WebServices/WSAdministrator.asmx"></asp:ServiceReference>
</services>
</asp:ScriptManagerProxy>
在JavaScript中使用这些服务的方法如下
WSAdministrator.GetConsumerClubInfo(ConsumerClubId,
OnSucceededToGetConsumerClubInfo,
OnFailedToGetConsumerClubInfo);
我想知道是否可以轻松地引用同一台机器上托管的WCF服务。
有什么建议吗?
编辑:WCF服务正在运行Windows服务上,它公开了webHttpBinding和basicHttpBinding终结点。
阅读ASP.Net WCF Service with no App_Code后,我意识到应该创建一个svc文件,它将作为对服务的引用。
我创建了这个svc文件:
<%@ ServiceHost Language="C#" Service="MyService.Namespace.Contract" %>
并且我在web.config文件中添加了以下几行:
<services>
<service name="MyService.Namespace.Contract">
<endpoint address="setAddress" binding="basicHttpBinding" contract="MyService.Namespace.ContractInterface"/>
</service>
</services>
地址可以正常使用,但是当我尝试从svc访问引用时,出现以下错误:
“ServiceHost指令中提供的服务属性值为''的类型找不到。”
我错过了什么吗?
注:有一些很好的答案,但都是我已经知道的事情,我的问题是如何引用我的自托管WCF服务,以便我可以从javascript中使用它,就这样,对此我仍然没有答案...
我看到一些回复类似的问题告诉应该有一个IIS托管的服务作为实际服务的“管道”,然后ScriptManager应该引用它,也许这是唯一的答案...