单例WebService (ASMX,而不是WCF)

本文关键字:WCF WebService ASMX 单例 | 更新日期: 2023-09-27 18:19:17

是否有办法将c# ASMX WebService定义为单例?也许在网络上。配置文件?目前我没有使用WCF。

Thanks in advance

    [WebService(Namespace = "http://www.mydomain.eu/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class MyService : System.Web.Services.WebService
    {
        ...
    }

单例WebService (ASMX,而不是WCF)

你可以把你的web服务隐藏在一个单例的facade后面:

public static class ServiceFacade
{
    public static void ServiceOperation()
    {
        using (var service = new MyService())
        {
            service.Operation();
        }
    }
}

您不能创建Singleton web服务,因为web服务运行在IIS上,并且被视为web应用程序并被这样维护。每个客户端将共享单个应用程序实例,但每个客户端都有自己的请求、响应、会话等。

你总是可以将主数据对象设置为静态的,它将被所有的worker实例共享。