Как установить ServiceHostingEnvironmentSection.AspNetCompatibilityEnabled кодом в C # - PullRequest
2 голосов
/ 31 марта 2011

У меня два вопроса:

  1. У меня есть служба wcf, размещенная в консольном приложении, если я установил для ServiceHostingEnvironmentSection.AspNetCompatibilityEnabled значение true, могу ли я получить доступ к HttpContext.Current.Session в консольном приложении.
  2. Если я могу получить доступ к HttpContext.Current.Session в консольном приложении, как установить ServiceHostingEnvironmentSection.AspNetCompatibilityEnabled с помощью кода.

Обратите внимание, что я использую WSHttpBinding

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Не думаю, что ты можешь.

Параметр AspNetCompatibilityEnabled позволит вам получить доступ к http-контексту текущего приложения, если это веб-служба http wcf , размещенная в IIS . Ваш не размещен в IIS, так как это консольное приложение.

Я не думаю, что действительно имеет смысл достигать HttpContext.Current.Session в консольном приложении (насколько я вижу, во всяком случае). Чей сеанс (или контекст) вы пытаетесь достичь? На вашем сервере может быть много веб-сайтов, каждый из которых будет иметь свой собственный контекст. Ваше консольное приложение на самом деле не связано ни с одним из них.

Подробнее об этой настройке можно прочитать на полпути вниз на этой странице.

1 голос
/ 31 марта 2011

AFAIK, и выдвинуть в простейшей форме:

  • нет и,
  • нет, вы не можете.

Чтобы уточнить, класс ServiceHostingEnvironment содержит AspNetCompatibilityEnabled (подробности см. здесь ) и может быть только доступным, но не устанавливаемым.

Это привело бы к предположению - довольно надежно - что вы просто не можете сделать это таким образом. Некоторые гуру могут знать о другом методе, однако я сильно сомневаюсь в этом, так как это конфигурация, которую, я думаю, нужно оценивать при выполнении приложения на сервере, а не во время выполнения.

Компиляция (посредством декорирования элементов с атрибутом AspNetCompatibilityRequirements) также может использоваться для настройки типов; но это вполне может идти рука об руку с существующей настройкой файла конфигурации.

Для дальнейшего чтения, прочитайте эту статью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...