【发布时间】:2013-04-11 07:06:03
【问题描述】:
最近我问这个:
Get Base URL of My Web Application
这在一定程度上在调试中起作用,因为我使用的是 VS 开发服务器。
然后我生成了一个安装程序,然后安装程序将指向 IIS 7。
我有:
void Application_Start(object sender, EventArgs e)
{
_baseUrl = HttpContext.Current.Request.Url.ToString();
....
}
但这引发了以下错误:
请求在此上下文中不可用
然后我做了一些阅读,这就是发生这种情况的原因:
然后我使用上面的技术将代码从 Application_Start 移到 Application_BeginRequest,因为我发现 Application_BeginRequest 被执行了多次。
但问题是我需要 IIS 7 的基本 URL,以便在 Application_Start 中使用,所以我尝试在其中设置一个全局字符串:
FirstRequestInitialization.Initialize(context);
但在尝试这样做时并不令人惊讶:
Application["BaseUrl"] = HttpContext.Current.Request.Url.ToString();
我收到此错误: 'Microsoft.Web.Administration.Application' 是一个“类型”,但用作“变量”
我想要的只是 IIS 7 的基本 URL。
我无法使用目录条目,因为我不支持 IIS 6。
我该怎么做?任何解决方法?我可以从 VS 执行 AppCmd 吗?
非常感谢任何帮助。谢谢!
【问题讨论】: