【问题标题】:Read IIS7 configuration from within web application?从 Web 应用程序中读取 IIS7 配置?
【发布时间】:2010-10-28 04:50:59
【问题描述】:

这是我想做的:

在所有页面都被预编译并填充缓存之前,我的 Web 应用程序一开始非常慢。我想通过触发一些对最慢页面的 HTTP 请求来“预热” Global.asax 中的应用程序。

问题是我不知道应用程序在哪个端口上运行。可能是 80(我的本地 IIS 或部署的服务器,我们测试服务器上的 8080 或一些使用 ASP.NET 开发服务器的同事的随机端口)

我认为读取合并的 Web 配置、提取绑定、创建 url 并使用 HttpWebRequest 触发请求会相当简单。

但是,我一点运气都没有……(我主要尝试了 WebConfigurationManager)

有什么想法吗?

【问题讨论】:

    标签: configuration iis-7 web-config port


    【解决方案1】:

    我认为您应该能够从 Request 对象中获取此信息。

    也就是说,如果没有来自生产的确凿证据证明这实际上是一个问题,我会对此感到担忧。

    【讨论】:

    • 不,这不是一个真正的问题,我不再积极追求这个问题。但不知何故,我觉得 Web 应用程序应该能够找出自己的 IIS 配置。或者至少我想要一个禁止这样做的充分理由。
    【解决方案2】:

    如果您可以访问 Page 对象(我不确定您是否在 global.asax 中这样做,因为我从未在我的应用程序中使用它)然后您可以使用它的 ResolveUrl(string path) 方法来获取正确的 URL,例如

    string myurl = Page.ResolveUrl("~/MyPage.aspx");
    

    其中 ~/ 指的是 ASP.Net 应用程序的根目录

    【讨论】:

    • 我知道那个,虽然我认为它只给出了没有方案、主机名和端口的绝对路径,如 /MyApplication/MyPath.aspx。但是,如果我有 Page 对象,Page.Request.Url 或 Page.Request.RawUrl 将是事情......我也不确定 Global.asax 中的 Application_Start 是否是正确的地方,我不知道它是否被调用当应用重启或第一个请求到来时
    猜你喜欢
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2012-01-22
    • 2011-11-28
    • 1970-01-01
    相关资源
    最近更新 更多