我有一个运行在IIS7上的ASP .Net应用程序。我正在使用该网站正在运行的当前网址,以便在我的应用程序的类中设置一些静态属性。要做到这一点,我得到使用这个域名(insde类的静态构造函数):如何在不使用HttpContext.Current.Request的情况下获取ASP .NET中的主机域名?
var host = HttpContext.Current.Request.Url.Host;
和它的作品我的开发机(窗XP /卡西尼)的罚款。但是,当我部署到IIS7时,出现异常:“请求在此上下文中不可用”。
我猜这是因为我在一个对象的静态构造函数中使用此代码,这是在任何请求进入之前在IIS中执行的; Cassini在请求发生之前不触发静态构造函数。现在,我原先并不喜欢从请求中拉出域名的想法,但它是我发现它的唯一地方=)
那么,有没有人知道我可以得到的另一个地方主机域名?我假设ASP .Net必须在某个级别上独立于HttpRequests而知道它,我只是不知道如何访问它。
嗯,对的,那么我真的应该做的不是在静态构造函数中初始化这些东西。事实上,如果我想要安全起见,我甚至不应该让自己的价值观保持静态 - 我应该再次查看它们,以防万一我收到来自多个域的请求(在我的例子中,我赢了'吨,但很好意识到这一点)。 感谢您的帮助 - 不幸的是,现在我应该重构这个遗留应用程序的一个更大的块比我想=) – Badjer 2010-02-02 01:01:56