在Application_Start事件中请求对象

我们目前使用这行代码来获取Application_Start事件中的当前应用程序URL。

string sApplicationURL = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath; 

我刚刚发现,在IIS7.0中,当触发Application_Start事件时,Request对象不再可用。

有没有另一种方法来获取当前的应用程序URL而不使用Request对象?

谢谢

看看这个: http : //mvolo.com/blogs/serverside/archive/2007/11/10/Integrated-mode-Request-is-not-available-in-this-context-in-Application_5F00_Start.aspx

总之,发生错误是因为Application_Start事件不再具有Request上下文。 此博客说明了处理此错误的两种选择:

1)将您的代码更改为无需请求,或2)修改您的应用程序以在经典模式下运行(不推荐)。

要获取ApplicationPath,请使用HttpRuntime.AppDomainAppVirtualPath

微软有一篇关于所有重大变化的综合文章,包括这篇,

http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

是的,其内容以某种方式来自http://mvolo.com (原因很简单)。