我们将多个站点部署到单个 WebRole。
<Sites>
<Site name="Web">
<Bindings>
<Binding name="EndpointA" endpointName="Internal" />
</Bindings>
</Site>
<Site name="Web2" physicalDirectory="Web2">
<Bindings>
<Binding name="EndpointB" endpointName="EndpointB" />
</Bindings>
</Site>
</Sites>
如果我理解正确,您可以访问主站点,例如:
public class WebRole : RoleEntryPoint
{
public override void Run()
{
while (true)
{
// Reconfigure log4net every 10 minutes
log4net.Config.XmlConfigurator.Configure();
Thread.Sleep(60000);
}
}
}
但是如何为在 WebRole 上运行的每个站点执行 log4net.Config.XmlConfigurator.Configure()?
顺便提一句
log4net.config 文件存储在 Azure Blob 存储中。
编辑:
log4net.Config.XmlConfigurator.Configure() 将根据 App.config 或 Web.config 读取正确的 log4net blob。具体来说:将 ConfigureFromBlob() 添加到 log4net 实现中。
如果应用程序安装在本地,ConfigureFromFile() 将自动监视 log4net.config 文件的更改并在需要时重新配置。ConfigureFromUri() 和 ConfigureFromBlob() 无法执行此操作,因此需要手动重新配置 log4net.config 更改。
对于 Windows Azure,我想最好的地方是 Run() 方法。