ASP.NET и Система. Трассировка диагностики - я пропустил что-то, или действительно ли это - плохая идея?

Отправляете ли вы заголовок «с учетными данными» на стороне клиента? Если это угловое 7 приложение, вы должны разрешить заголовок with credentials на стороне сервера, добавить конфигурацию cors и добавить перехватчик на стороне клиента для каждого http-запроса клиента. Кроме того, вы не должны указывать "*" как разрешенные источники, иначе заголовок with credentials не будет работать.

На Angular создайте это:

@Injectable()
export class CredentialsInterceptor implements HttpInterceptor {
constructor() {}

intercept(request: HttpRequest<any>, next: HttpHandler): 
Observable<HttpEvent<any>> {

request = request = request.clone({
    withCredentials: true
});
return next.handle(request);
}
}

И добавьте в app.module:

providers: [{
provide: HTTP_INTERCEPTORS,
useClass: CredentialsInterceptor,
multi: true
}  

Еще одной проблемой может быть порядок фильтра cors, он должен быть до фильтр на filterChain. Вы можете справиться с этим примерно так:

@Bean
FilterRegistrationBean<CorsFilter> corsFilter(CorsConfigurationSource 
corsConfigurationSource)
{
CorsFilter corsFilter = new CorsFilter(corsConfigurationSource);

FilterRegistrationBean<CorsFilter> bean = new FilterRegistrationBean<> 
();
bean.setFilter(corsFilter);
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
5
задан MatthewMartin 23 May 2013 в 18:38
поделиться

2 ответа

Хорошо, таким образом, это - то, как это закончилось.

Мой коллега под названием Microsoft и сообщил об этой ошибке им. Быть официальными партнерами означает, что мы еще получаем доступ к некоторым расположенная по приоритетам очередь фиксации, или что-то... не знает тот материал. Так или иначе они работают над ним. Надо надеяться, мы будем скоро видеть патч.:)

Тем временем я создал свой собственный небольшой класс трассировки. Это не поддерживает все дополнительные свойства, которые делает платформа трассировки по умолчанию, но это, в чем я нуждаюсь.:) Более конкретно:

  • Это пишет в тот же формат XML как значение по умолчанию XmlWriterTraceListener таким образом, я могу использовать инструмент для анализа журналов.
  • Это имеет созданный во вращении журнала - что-то, сверху чего мой коллега должен был сделать себя XmlWriterTraceListener.
  • Фактический вход задерживается к другому потоку, таким образом, уровень может быть измерен более точно.
  • Корреляции теперь хранятся в HttpContext.Items таким образом, ASP.NET, распараллеливающий особенности, не влияет на него.

Счастливый конец, я надеюсь.:)

1
ответ дан 15 December 2019 в 01:12
поделиться

Вы поднимаете очень интересный вопрос. После рассмотрения Отражателя я также вижу, что CorrelationManager использует CallContext для хранения идентификатора действия. Я не работал с трассировкой очень, таким образом, я не могу действительно говорить от имени того, какие типы операций она отслеживает, но если она отслеживает единственное действие через весь жизненный цикл запроса страницы, на статью Вы сослались выше, существует возможность, что идентификатор действия мог стать разъединенным с фактическим действием. Это действие, казалось бы, умерло бы на полпути через.

HttpContext казался бы идеальным для отслеживания всего запроса страницы с начала закончиться, так как он будет перенесен, даже если выполнение изменится на другой поток. Однако HttpContext не будет передан Вашим бизнес-объектам, где, поскольку CallContext был бы. На ноте стороны я видел, что CallContext может также быть передан при использовании дистанционной работы между приложениями для клиента и сервера, которая довольно изящна, но в случае отслеживания веб-сайта, это действительно не было бы всем этим полезным.

Если Вы уже не имеете, проверяете сайт этого парня. Проблемой, описанной в этой статье, не является конкретно та же проблема, которую упомянула статья Cup (Of T), но это все еще довольно интересно. Он также предоставляет несколько очень информативных ссылок на странице, которые описывают компоненты CorrelateionManager.

К сожалению, у меня действительно нет ответа на Ваш вопрос, но я определенно нахожу тему интересной и продолжу изучать ее. Поэтому обновите это сообщение, как Вы узнаете больше. Мне любопытно видеть то, что Вы или другие (надо надеяться, кто-то там может пролить некоторый свет на тему) находите при изучении этого.

Так или иначе, удача. Я буду говорить с некоторыми взглядами на моей работе об этом и отправлять больше позже, если я найду что-нибудь.

Chris

3
ответ дан 15 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: