是否可以在不使用托管服务的情况下使用Azure diagnostics

是否可以在不使用托管服务的情况下使用Azure diagnostics,azure,azure-diagnostics,Azure,Azure Diagnostics,我的解决方案中有几个web和worker角色,但我也有一个非Azure应用程序在Azure托管的VM上运行。该应用程序连接到Azure存储,用于读取和写入blob和队列等各种功能,并且工作正常 我想在同一个应用程序(运行在Azure托管的VM上的.NET应用程序)中使用Azure诊断。但是,如果我尝试初始化诊断,会出现以下异常: System.InvalidOperationException:未在托管服务或开发结构中运行 这是有道理的,但我想知道是否有可能在不作为托管服务的情况下以某种方式使用

我的解决方案中有几个web和worker角色,但我也有一个非Azure应用程序在Azure托管的VM上运行。该应用程序连接到Azure存储,用于读取和写入blob和队列等各种功能,并且工作正常

我想在同一个应用程序(运行在Azure托管的VM上的.NET应用程序)中使用Azure诊断。但是,如果我尝试初始化诊断,会出现以下异常:

System.InvalidOperationException:未在托管服务或开发结构中运行

这是有道理的,但我想知道是否有可能在不作为托管服务的情况下以某种方式使用诊断。特别是,我正在使用azure diagnostics来收集由System.diagnostics.Trace写入的日志信息,这些信息都隐藏在应用程序代码之外,因此如果有其他API,我可能可以将其放入其中

有什么想法吗? 谢谢
不幸的是,没有。至少今天没有。代理对RoleEnvironment的内容进行了一些硬编码检查,如果没有,则会失败。这也是您今天不能在IaaS中使用代理的原因。

这不是一个真正的答案,但是…常规日志程序集(Log4Net)会暂时工作吗?将代码提取出来,这样,对于非Windows应用程序,它会登录到文件/db等,而对于Azure,它会进行诊断。也许将来他们会支持这一点,您的代码也可以使用了。您可以添加自己的跟踪侦听器,用于写入表存储、blob存储甚至SQL Azure。