【问题标题】:singleton pattern asp.net webproject with .asmx webservice带有 .asmx Web 服务的单例模式 asp.net Web 项目
【发布时间】:2013-04-01 13:50:28
【问题描述】:

我正在.net 项目中实现连接池 我的asp.net 项目中有一个.asmx 网络服务,用于获取connectionID。 我添加了一个类 TicketManager.cs,我在下面使用它制作了单例

    private static readonly TicketManager TicketManagerInstance=new TicketManager();
    public static TicketManager GetTicketManagerInstance()
    {
        return TicketManagerInstance;
    }

。使用我的 web 服务,我执行操作来获取票证。但是当我在 IIS 中部署这个项目时,我得到了不同的结果。我有一个 web 方法来列出 USE 中的当前连接。当我尝试得到这个时。我看到不同的结果根据不同的请求。我怀疑我的单例类可能会被多次实例化。你能提出一些建议吗? 我应该如何让它在多线程环境中工作?

【问题讨论】:

  • 您的静态实例将用于所有请求。那是你的意图吗?另外,为什么那会是线程安全的?
  • 而且,线程安全,为什么?默认情况下,世界不是线程安全的。
  • 我正在用这个实现池化。这个类用于给用户一张票,用于访问我们网站中的一些链接。我们对此有限制(例如,如果它是 80 则第 81 位用户不会能够访问。如果它不是线程安全的,如果第 80 位和第 81 位用户同时尝试获取票证,我们可能会遇到问题)。所以我需要它是线程安全的。
  • 但是你没有做任何事情来忍受安全。我发现应用程序池重启有问题。那时你会有两份单身人士的副本。
  • 最后我正在使用只有 1 个工作进程的应用程序池并将票证保存在数据库中。感谢您的帮助

标签: asp.net web-services singleton asmx


【解决方案1】:

最后我使用只有 1 个工作进程的应用程序池并将票证保存在数据库中

【讨论】:

    猜你喜欢
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多