gpt4 book ai didi

asp.net - 如何在不使用 HttpContext.Current.Request 的情况下获取 ASP .NET 中的主机域名?

转载 作者:行者123 更新时间:2023-12-04 15:05:10 24 4
gpt4 key购买 nike

我有一个在 IIS7 上运行的 ASP .Net 应用程序。我正在使用该站点正在运行的当前 url 来在我的应用程序中的一个类上设置一些静态属性。为此,我使用这个(插入类的静态构造函数)获取域名:

var host = HttpContext.Current.Request.Url.Host;

它在我的开发机器(Windows XP/Cassini)上运行良好。但是,当我部署到 IIS7 时,出现异常:“请求在此上下文中不可用”。

我猜这是因为我在对象的静态构造函数中使用了此代码,该对象在任何请求进来之前在 IIS 中执行;并且 Cassini 在请求发生之前不会触发静态构造函数。现在,由于这个原因,我最初并不喜欢从请求中提取域名的想法,但这是我找到它的唯一地方 =)

那么,有人知道我可以获得主机域名的其他地方吗?我假设 ASP .Net 必须在独立于 HttpRequests 的某个级别上意识到它,我只是不知道如何访问它。

最佳答案

域在请求中的原因是......这就是所要求的。例如,这些是来自 http://www.stackexchangesites.com/ 的一些 stackexchange 站点。 :

  • http://community.ecoanswers.com
  • http://www.appqanda.com
  • http://www.irosetta.com/

  • 如果您 p​​ing 它们,您会看到它们都指向同一个 IP/Web 服务器并由同一个应用程序(或在这种情况下为多个应用程序,但如果它是一个大应用程序,则该示例成立)...但是应用程序直到 host header 才知道是哪一个请求服务器提供该站点的请求。每个请求可能针对不同的域……所以应用程序不知道它。

    但是,如果它没有改变,您可以将其作为 appSetting 存储在 web.config 中。 .

    关于asp.net - 如何在不使用 HttpContext.Current.Request 的情况下获取 ASP .NET 中的主机域名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180905/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com