2

我有一个带有 .asmx 扩​​展名的 Web 服务,它指向我的 Web 应用程序中的一个类。添加一些代码以在应用程序启动时输出调试日志后,我可以看到每次用户访问该页面时都会创建一个新的调试日志。

我希望我可以将此 Web 服务配置为只使用一个实例。

这意味着,当第一个用户访问该站点时,它会创建我的 Web 服务的实例,然后之后的所有请求都通过同一类路由,共享相同的状态。

这甚至可能吗?

4

2 回答 2

1

网站本质上是无状态的。这意味着,每个请求通常与任何其他请求无关。

也就是说,您可以在 global.asax 文件中将日志设置为静态变量。注意线程问题。

或者,您可以查看Elmah

于 2013-02-27T01:31:20.810 回答
1

你似乎有很多问题。

首先,ASMX 技术已经过时,不应该用于新的开发。应改为使用 WCF。

接下来,是的,您可以对服务进行多次调用,共享同一个类实例。但是,除非它是线程安全的,否则您必须防止同时访问此类。您应该期望多个服务调用同时调用同一个类实例。

最后,ASMX 不支持单例 Web 服务。您可以做的最好的事情是让多个服务调用都共享同一个对象(小心锁定)。

于 2013-02-27T02:56:58.913 回答