2016-02-03 4 views
1

Мы можем получить доступ всех сообщений трассировки по умолчанию в http://localhost/MyWeb/trace.axdMicrosoft LightSwitch - Как написать свое собственное сообщение Trace.axd

Но как я могу написать свою собственную ошибку/протоколирование сообщений на этот след. Я пробовал

System.Diagnostics.Trace.Write() 

Но не удалось увидеть мое сообщение на этом экране трассировки.

Может кто-нибудь предложить, как я могу писать и просматривать собственные сообщения трассировки.

Я пробовал это в службе WCF_RIA, которую я вызвал от клиента Silverlight от LightSwitch.

ответ

1

Мы в настоящее время используют следующие способы записи в LightSwitch Trace.axd войти:

Microsoft.LightSwitch.Trace.TraceInformation("test info"); 
Microsoft.LightSwitch.Trace.TraceError(new Exception("test exception")); 

TraceError полезно, как вы можете легко перейти в пойманной исключения, и это выделено красным цветом в трассировке .axd.

Мы также категоризации наши следы, предоставляя дополнительный параметр категории следующим образом: -

Microsoft.LightSwitch.Trace.TraceInformation("CustomCategory", "test info"); 

Для того, чтобы увидеть эти категоризированных следы, нужно включить «CustomCategory» в Microsoft.LightSwitch.Trace .Categories раздел вашего web.config, например:

<!-- The semicolon-separated list of categories that will be enabled at the specified trace level --> 
<add key="Microsoft.LightSwitch.Trace.Categories" value="Microsoft.LightSwitch;CustomCategory" /> 

Как говорилось в Lightswitch команды Блог пост Diagnosing Problems in a Deployed 3-Tier LightSwitch Application (Eric Erhardt), вам необходимо рассмотреть следующие параметры в вашем web.config для того, чтобы включить журнал трассировки:

  • Microsoft.LightSwitch.Trace.Enabled
  • Microsoft.LightSwitch.Trace.LocalOnly
  • Microsoft.LightSwitch.Trace.Level
  • Microsoft.LightSwitch.Trace.Sensitive
  • Microsoft.LightSwitch. Trace.Categories

Хотя эта диагностическая подсистема предназначена для отслеживания действий, запрашиваемых сервером, и ответа сервера на каждый acti on, его также можно принуждать к отслеживанию операций на стороне клиента, предоставляя клиенту конечную точку на стороне сервера методам трассировки на стороне сервера.

Одним из вариантов обеспечения этого является реализация конечной точки контроллера API-интерфейса ASP.NET и вызов этого из клиента LightSwitch.Следующее LightSwitch команда Публикации обеспечивают обзор реализации этого типа конечной точки:

Хотя эти сообщения в блоге охватывают общие детали, в данном конкретном случае, следующие основные могут быть использованы шаги:

Реализовать WebAPI конечной

  1. Нажмите правой кнопкой мыши на проекте сервера и добавить папку под названием апи
  2. правой кнопкой мыши на этой новой папке апи и добавить новый элемент (выберите Web \ Web API контроллер класса) называется TraceController.cs
  3. Код конечной точки в TraceController по следующим направлениям:

    public class TraceController : ApiController { [HttpGet] [Route("api/Trace/Information/{message}")] public void Information(string message) { using (var sac = ServerApplicationContext.CreateContext()) { Microsoft.LightSwitch.Trace.TraceInformation(message); } } }

  4. нажмите правой кнопкой мыши на проекте сервера и добавить новый элемент (выберите Web \ Общие \ Global Class Application) называется Global.asax

  5. Осуществить следующую конфигурацию в методе Application_Start в global.asax в:

    public class Global : System.Web.HttpApplication { protected void Application_Start(object sender, EventArgs e) { GlobalConfiguration.Configure(config => { config.MapHttpAttributeRoutes(); }); } }

Быстрый пример вызова WebAPI конечной точки от клиента LightSwitch HTML

var message = encodeURIComponent("Hello JavaScript World"); 
var url = "../api/Trace/Information/" + message; 
$.ajax({ 
    type: "GET", 
    url: url, 
    context: document.body 
}); 

Быстрый пример вызова конечной точки WebAPI из клиент LightSwitch Silverlight

Microsoft.LightSwitch.Threading.Dispatchers.Main.BeginInvoke(async() => 
    { 
     System.Net.WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.BrowserHttp); 
     System.Net.WebRequest.RegisterPrefix("https://", System.Net.Browser.WebRequestCreator.BrowserHttp); 
     var message = "Hello Silverlight World"; 
     var uri = new Uri(System.Windows.Application.Current.Host.Source, "/api/Trace/Information/" + message); 
     var request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(uri); 
     request.BeginGetResponse(ac => { }, null); 
    }); 
} 
+0

Я попытался Microsoft.LightSwitch.Trace.TraceInformation ("тест информации"); Microsoft.LightSwitch.Trace.TraceError (новое исключение («исключение теста»)); , но не видел строк в trace.axd ... нужны ли дополнительные настройки для этого? –

+0

У меня есть эти настройки в web.config: \t \t \t \t <добавить ключ = значение "Microsoft.LightSwitch.Trace.Enabled" = "истинный" /> \t \t <добавить ключ = "Microsoft.LightSwitch.Trace.LocalOnly "value =" true "/> –

+0

Я пишу этот код в событии кнопки LightSwitch. –

 Смежные вопросы

  • Нет связанных вопросов^_^