Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个带有 .asmx 扩展名的 Web 服务,它指向我的 Web 应用程序中的一个类。添加一些代码以在应用程序启动时输出调试日志后,我可以看到每次用户访问该页面时都会创建一个新的调试日志。
我希望我可以将此 Web 服务配置为只使用一个实例。
这意味着,当第一个用户访问该站点时,它会创建我的 Web 服务的实例,然后之后的所有请求都通过同一类路由,共享相同的状态。
这甚至可能吗?
网站本质上是无状态的。这意味着,每个请求通常与任何其他请求无关。
也就是说,您可以在 global.asax 文件中将日志设置为静态变量。注意线程问题。
或者,您可以查看Elmah。
你似乎有很多问题。
首先,ASMX 技术已经过时,不应该用于新的开发。应改为使用 WCF。
接下来,是的,您可以对服务进行多次调用,共享同一个类实例。但是,除非它是线程安全的,否则您必须防止同时访问此类。您应该期望多个服务调用同时调用同一个类实例。
最后,ASMX 不支持单例 Web 服务。您可以做的最好的事情是让多个服务调用都共享同一个对象(小心锁定)。