1

在 global.asax.cs 的 Application_Start 事件中,我添加了一些初始化代码。此代码在衍生线程中运行(使用 new Thread() 创建)。初始化代码使用 Server.MapPath 来获取文件的物理路径。但是很多时候我在日志文件中得到一个错误: 服务器操作在这种情况下不可用 无论如何我都遇到了异常。初始化并不重要,因为即使它不成功,对我来说也不是问题。我的问题是:

  1. 为什么我收到服务器不可用错误?
  2. 处理的异常是否会在应用程序正常执行期间导致任何问题,例如 Invalid Viewstate。我们在日志中注意到了很多这些 - Invalid Viewstate。我相信它不能。如果我错了,请纠正我。

谢谢

维卡斯

4

1 回答 1

1

Server 对象是通过HttpContext.Currentie 相对于当前请求来引用的。我怀疑它不可用,Application_Start因为此时没有请求。无论如何,由于线程彼此独立运行,因此无法从单独的线程中可靠地使用它,因此任何请求都可能在您的线程尝试访问它之前已经开始或完成。

尝试使用HostingEnvironment.MapPath(),因为这是一种静态方法。

于 2012-01-08T09:49:06.190 回答