2

当我们的ASP.NET MVC 4应用程序启动时,我们需要在Log4Net Appender上设置一个属性,该属性取决于站点是什么。

有没有办法在网站初始加载中获得“ http://www.site.com ”部分,也许在 Global.asax 中?

概述: 如果服务器是 www.site2.com 则设置 Appender.SomeValue = "555" 如果服务器是 www.site.com 则设置 Appender.SomeValue = "123"

因为许多站点将指向相同的代码库,所以在 Appender.SomeValue 运行之前我们不知道需要将其设置为什么。

4

2 回答 2

1

我认为 Global.asax 中的方法只会在响应请求时运行。在 ASP.NET 中几乎所有地方,您都可以访问HttpContext.Current.Request.Url.

还有一种方法在之前运行Application_Start,那就是用PreApplicationStartMethodAttribute属性修饰的方法。

一种方法是使用 WMI(Windows 管理规范)来访问当前网站、它的绑定以及网站地址。

于 2013-11-14T22:50:22.657 回答
0

应用程序前启动受到更多限制,因为它在应用程序启动之前运行,更多用于初始化 di 容器。为了安全起见,我会将代码放在 global.asax.cs 中定义的新静态方法中,此时 application_start 方法调用该方法对 HttpContext.Current.request.Url 的访问应该是安全的

于 2013-11-14T23:36:00.537 回答