Семантическая регистрация (SLAB) для веб-приложения MVC Azure
Пытаюсь внедрить SLAB для моего веб-приложения Azure (в процессе), и моим списком является хранилище таблиц Azure (строка соединения таблицы), проблема, с которой я сталкиваюсь, - "EventSource.IsEnabled() = всегда возвращает false" (запускаю приложение из VS2013 с IIS express)
мой код
---- 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);
1 ответ
Похоже, "Веб-приложения Azure" не могут прослушивать события ETW.
https://azure.microsoft.com/en-in/documentation/articles/choose-web-site-cloud-service-vm/
Области диагностики и отслеживания, которые недоступны веб-приложениям в Azure, - это события Windows ETW и общие журналы событий Windows (например, журналы событий системы, приложения и безопасности). Поскольку информация трассировки ETW потенциально может быть доступна для просмотра на всей машине (с правильными списками ACL), доступ для чтения и записи к событиям ETW блокируется. Разработчики могут заметить, что вызовы API для чтения и записи событий ETW и общих журналов событий Windows, похоже, работают, но это потому, что WEB Apps "подделывает" вызовы, чтобы они казались успешными. На самом деле код веб-приложения не имеет доступа к данным этого события.
Спасибо