Global.asax中的Server.MapPath

时间:2012-01-08 09:34:02

标签: asp.net global-asax server.mappath

在global.asax.cs的Application_Start事件中,我添加了一些初始化代码。此代码在生成的线程(使用新的Thread()创建)中运行。初始化代码使用Server.MapPath来获取文件的物理路径。但是很多次我在日志文件中出错: 在此上下文中无法使用服务器操作 在任何情况下,我都在捕捉异常。初始化并不重要,因为即使它没有成功,对我来说也不会有问题。 我的问题是:

  1. 为什么我收到服务器不可用错误?
  2. 在正常执行应用程序期间,处理异常是否会导致无效视图状态等问题。我们在日志后面注意到了很多这些 - 无效的Viewstate。 我相信它不能。如果我错了,请纠正我。
  3. 由于

    维卡斯

1 个答案:

答案 0 :(得分:1)

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

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