Как я могу остановить IISExpress от сброса каждой детали каждого запроса в окно вывода Visual Studio?

Окно вывода моего VS 2013 заполнено следующим образом:

iisexpress.exe Information: 0 : Request, Method=GET, Url=http://localhost:51741/api/Clients/?$filter=UniqueName eq '6269', Message='http://localhost:51741/api/Clients/?$filter=UniqueName eq '6269''
iisexpress.exe Information: 0 : Message='Clients', Operation=DefaultHttpControllerSelector.SelectController
iisexpress.exe Information: 0 : Message='MyProj.Controllers.ClientsController', Operation=DefaultHttpControllerActivator.Create
iisexpress.exe Information: 0 : Message='MyProj.Controllers.ClientsController', Operation=HttpControllerDescriptor.CreateController
iisexpress.exe Information: 0 : Message='Selected action 'GetClients()'', Operation=ApiControllerActionSelector.SelectAction
iisexpress.exe Information: 0 : Operation=HttpActionBinding.ExecuteBindingAsync
iisexpress.exe Information: 0 : Operation=QueryableAttribute.ActionExecuting
iisexpress.exe Information: 0 : Message='Action returned 'System.Collections.Generic.List`1[MyProj.Models.ClientDto]'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync
iisexpress.exe Information: 0 : Message='Will use same 'JsonMediaTypeFormatter' formatter', Operation=JsonMediaTypeFormatter.GetPerRequestFormatterInstance
iisexpress.exe Information: 0 : Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate
iisexpress.exe Information: 0 : Operation=ApiControllerActionInvoker.InvokeActionAsync, Status=200 (OK)
iisexpress.exe Information: 0 : Operation=QueryableAttribute.ActionExecuted, Status=200 (OK)
iisexpress.exe Information: 0 : Operation=ClientsController.ExecuteAsync, Status=200 (OK)
iisexpress.exe Information: 0 : Response, Status=200 (OK), Method=GET, Url=http://localhost:51741/api/Clients/?$filter=UniqueName eq '6269', Message='Content-type='application/json; charset=utf-8', content-length=unknown'
iisexpress.exe Information: 0 : Operation=JsonMediaTypeFormatter.WriteToStreamAsync
iisexpress.exe Information: 0 : Operation=ClientsController.Dispose

Как мне отключить все это? Все, что я хочу видеть, - это мои вызовы Trace.TraceInformation, Trace.TraceError, Trace.TraceWarning и т.д.

Ответы

Ответ 1

В App_Start\WebApiConfig.cs удалите config.EnableSystemDiagnosticsTracing();

Прост как это: facepalm:

Ответ 2

Прежде всего, когда вы используете код типа

Trace.TraceInformation("My Custom Info Message.");

для трассировки (неважно, из какого места - страницы, контроллера или какого-либо другого класса из отдельной .dll), а затем запустите приложение под IIS Express, окно MS VS Output отобразит что-то вроде

iisexpress.exe Information: 0 : My Custom Info Message.

Как вы могли узнать, какие сообщения являются "вашими" и "не вашими"? Может быть, вам следует добавить дополнительный маркер для каждого вашего сообщения? Но как я мог видеть, окна вывода по-прежнему не поддерживают фильтрацию сообщений с помощью настраиваемых тегов или текста, но он поддерживает поиск текста (Ctrl + F), поэтому...

У меня была такая же проблема с спамом IIS Express для окон вывода с такими сообщениями

'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-130838650006648508): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

Я решил, что, перейдя в главное меню MS VS (2013)

- > DEBUG → Параметры и настройки... → Отладка → Окно вывода

и выключение ненужных типов выходных сообщений

Общие настройки вывода

Ответ 3

Добавляет ли эта работа?

<location path="YouSiteName">
    <system.webServer>
        <httpLogging dontLog="true" />
    </system.webServer>
</location>

Найдено по адресу: http://forums.iis.net/post/1992357.aspx