Различный сеанс между службами HttpHandler и WCF в одном приложении - PullRequest
2 голосов
/ 05 ноября 2010

У меня проблема с получением HttpHandler в моем приложении-службе WCF для распознавания того же сеанса, который имеет клиент Silverlight для служб WCF ... то есть:

  1. Пользователь входит через приложение SL в службу WCF - HTTPContext.Current.Session ["user"] создается как IPrincipal
  2. Пользователь успешно использует несколько других служб WCF в том же приложении, Безопасность работает
  3. Пользователь переходит к методу, который вызывает один из моих HttpHanders - например, upload.ashx, и неожиданно появился новый sessionID

Теперь все службы WCF имеют:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

и HttpHandlers все наследуются от BaseHandler, который реализует IHttpHandler и

IRequiresSessionState: BaseHandler : IHttpHandler, IRequiresSessionState

и в файле web.config для приложения у меня настроен раздел httpHandlers (правильно?):

<httpHandlers>
    <add verb="*" path="Upload.ashx" type="THR.STAISys.WCF.Upload" />
</httpHandlers>

Так что я понятия не имею, почему они не поддерживают один и тот же сеанс ... при переходе с тестовой страницы aspx я могу войти и правильно нажать обработчик, но когда я вошел в систему через приложение SL, получить один идентификатор сеанса и, ударив обработчик, я получил другой идентификатор сеанса ... с чего бы это?

спасибо!

...