我有一个Azure WebRole,我正尝试使用DiagnosticMonitor配置日志记录。为什么在使用RoleEntryPoint时无法访问Application_Start中的RoleEnvironment?
根据在windowsazure.com测井应的OnStart来实现的文档:
Note: The code in the following steps is typically added to the OnStart method of the role.
https://www.windowsazure.com/en-us/develop/net/common-tasks/diagnostics/
为了访问OnStart方法我必须定义一个RoleEntryPoint。但一旦定义,我就无法访问Web应用程序Application_Start中的RoleEnvironment。
如何使角色环境可用于应用程序,同时仍能够使用DiagnosticMonitor?
我将应用程序连接字符串存储在服务配置中。
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
// config
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
LocalResource localResource = RoleEnvironment.GetLocalResource("MyCustomLogs");
DirectoryConfiguration dirConfig = new DirectoryConfiguration();
dirConfig.Container = "wad-mycustomlogs-container";
dirConfig.DirectoryQuotaInMB = localResource.MaximumSizeInMegabytes;
dirConfig.Path = localResource.RootPath;
DiagnosticMonitorConfiguration diagMonitorConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();
diagMonitorConfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1.0);
diagMonitorConfig.Directories.DataSources.Add(dirConfig);
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", config);
return base.OnStart();
}
什么,当你试图在Web应用程序的Application_Start访问RoleEnvironment发生什么呢? – 2012-03-29 12:47:41
这似乎与这个http://stackoverflow.com/a/6202411/348841有什么关系,但有人可以解释我应该怎么做? – 2012-03-29 12:49:39
您是否试图从Application_Start(重新)配置您的DiagnosticsMonitor? – 2012-03-29 12:49:53