Можете ли вы передать данные из HttpModule в размещенный в IIS WCF без включенной совместимости с aspNetCompatibility

#wcf #httpmodule

#wcf #httpmodule

Вопрос:

В настоящее время у меня есть HttpModule, который генерирует уникальный идентификатор для каждого запроса внешнего клиента, добавляет его в журнал IIS и в HttpContext.Сбор элементов для передачи в веб-службу thw.

В настоящее время я заменяю веб-службу службой WCF (все еще размещенной в IIS). Я могу успешно выполнить тот же процесс, включив совместимость с AspNet, но я бы предпочел этого не делать. Есть ли какой-либо способ передать данные из HttpModule, чтобы указать OperationContext службы WCF, не включая совместимость с AspNet?

Ответ №1:

Вот что говорит MSDN о расширяемости HttpModule: инфраструктура хостинга WCF перехватывает запросы WCF при возникновении события PostAuthenticateRequest и не возвращает обработку в ASP.NET HTTP-конвейер. Модули, которые закодированы для перехвата запросов на более поздних этапах конвейера, не перехватывают запросы WCF.
Я предлагаю вам полностью ознакомиться с этой документацией MSDN, чтобы понять, как ASP.Net и WCF сосуществуют

Комментарии:

1. В настоящее время я генерирую свой идентификатор в BeginRequest, который все еще выполняется до перехвата вызова.

2. Извините, я пропустил раздел «Раздел uniqueid» после обработки модуля. Добавление http-заголовка может быть чем-то, что вы можете изучить, но это больше похоже на взлом. forums.asp.net/p/979853/1250479.aspx

3. К сожалению, я уже пробовал этот подход, и он не увенчался успехом, поскольку я не веб-приложение.