gpt4 book ai didi

asp.net - ServiceReference 一个自托管的 WCF 服务

转载 作者:行者123 更新时间:2023-12-02 02:04:00 24 4
gpt4 key购买 nike

我目前正在维护和开发一个网站,该网站以 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 访问引用时,出现以下错误:

The type '', provided as the Service attribute value in the ServiceHost directive could not be found.

我在这里缺少什么?

注意:有一些很好的答案,但对于我已经知道的事情,我的问题是如何使用 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 - ServiceReference 一个自托管的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7252986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com