2015-06-22 40 views
0

我试图为我的Azure Web应用程序(In Process)实现SLAB,而我的列表器是Azure表Storage(表连接字符串), 所面临的问题是 - “EventSource.IsEnabled ()=总是返回false” (AM从VS2013与IIS中运行的应用快递)MVC Azure Webapp的语义记录(SLAB)

我的代码

---- Global.asax的

var listener2 = new ObservableEventListener(); 
listener2.EnableEvents(SBEvents.Log, EventLevel.Verbose,Keywords.All); 
listener2.LogToWindowsAzureTable(“sdf”, “DefaultEndpointsProtocol=https;AccountName=********;AccountKey=****************); 

----事件来源

Public class SBEvents :EventSource { 
public class keywords{...} 
public class Tasks {..} 

private static readonly Lazy Instance = new Lazy(() => new SBEvents()); 
public static SBEvents Log { get { return Instance.Value; } } 

[Event(102, Message = “Bike started with Bike ID :{0}”, Keywords = Keywords.Application, Level = EventLevel.Informational)] 
public void BikeStarted(String BikeID){ 
if (this.IsEnabled()) //// = always returns false 
this.WriteEvent(102,BikeID); 

回答

0

它看起来像'Azure Web Apps'不能监听ETW事件。不可用,以在Azure上的Web应用程序的诊断日志记录和跟踪的

https://azure.microsoft.com/en-in/documentation/articles/choose-web-site-cloud-service-vm/

领域都是Windows ETW事件,以及常见的Windows事件日志(例如系统,应用程序和安全事件日志)。由于ETW跟踪信息可能在机器范围内可见(使用正确的ACL),因此对ETW事件的读取和写入访问被阻止。开发人员可能会注意到,用于读写ETW事件和常见Windows事件日志的API调用似乎可行,但这是因为WEb Apps正在“伪造”这些调用,以使它们看起来成功。实际上,网络应用代码无法访问此事件数据

谢谢