asp.net – ServiceReference是一个自托管的WCF服务
我目前正在维护和开发一个以ajax方式使用大量web服务的网站.
注册服务是在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访问引用时,我收到以下错误:
我在这里错过了什么? 注意:有一些很好的答案,但所有我已经知道的事情,我的问题是如何使用asp.net引用我的自托管WCF服务,以便我可以从javascript使用它,这就是全部,为此我仍然没有答案…… 我看到一些类似问题的回复告诉我们应该有一个IIS托管服务作为实际服务的“管道”,然后ScriptManager应该引用它,也许这是唯一的答案…… 解决方法
当您自托管WCF服务时,不要使用.SVC文件,而是按照以下方式在Windows服务的OnStart方法中创建服务主机.
WebServiceHost myServiceHost = null; if (myServiceHost != null) { myServiceHost.Close(); } myServiceHost = new WebServiceHost(typeof(YourClassName)); myServiceHost.Open(); 如果您想托管您的服务以支持WebHttpBinding,那么托管类应该是WebServiceHost,如果您想托管wsHttpBinding或其他任何您应该使用ServiceHost. 一旦服务开始运行,客户端就可以连接到它. 以下link包含了执行此操作的分步过程. 如果你必须支持能够使用AJAX和Jquery进行交谈的RESTful服务,那么你应该使用WebServiceHost,你将以下列方式装饰你的操作合同. [ServiceContract()] public interface IMyInterface { [OperationContract] [WebInvoke(Method = "GET",ResponseFormat = WebMessageFormat.Json,UriTemplate = "GetArray",BodyStyle = WebMessageBodyStyle.Bare)] MyArray[] GetArray(); } 您甚至可以在以下question中找到有关此信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Global.asax PostAuthenticateRequest事件绑定是
- asp-classic – ASP格式化日期
- 在ASP.NET MVC 2中实现DropDownList的最佳方式?
- asp.net-mvc – 未提供所需的防伪标记或无效 – 仅限Safari
- asp.net-mvc – WebAPI ModelBinder错误
- asp.net-mvc-3 – 提交后的mvc3复选框值
- 实体框架 – 实体框架验证混淆 – 最大字符串长度为’128′
- 使用数字填充asp.net下拉列表
- asp.net-mvc – C#Razor Forms – 插入角度属性
- Asp.net mvc 知多少(七)