Ihttpasynchandler вызывает unathorizedaccessexception
-
21-09-2019 - |
Вопрос
В течение последних нескольких дней моих праздников X-MAS я боролся с UnthorizedAccessException, пытаясь прочитать файл XML на удаленном обмене через мое приложение ASP.NET, используя реализацию Ihttpasynchandler долгое время с IrequireSessionState.
После долгих голов и пришел к выводу, что код за пределами обработчика работал безупречно (см.: Доступ предоставленный), я подумал, что это может быть какая -то проблема, поэтому я изменил ihttpasynchandler на ihttphandler, и проблема исчезает.
Что меня беспокоит, так это то, что для тестовых целей я на самом деле не использовал, если реализация ihttpasynchandler (следовательно, я не использовал startprocessrequest и endprocessrequest - только синхронизация. Версия, ProcessRequest.
Кто -нибудь может попытаться объяснить проблему под рукой?
Есть некоторые полезные вопросы при использовании асинхронного использования обработчика, так как я мог бы предварительно погасить значения, которые будут доставлены позже в приложении, но для этого я должен получить проблемы с безопасностью, которые, кажется, проявляются только при реализации ihttpasynchandler Анкет
Заранее спасибо за вашу любезную помощь - и счастливых праздников :-)
Решение
Инфраструктура ASP.NET по -разному вызывает асинхронологический обработчик (независимо от того, действительно ли IMP действительно асинхронно). Возможно ли, что вы полагались на олицетворение для доступа к сетевому ресурсу? Я предполагаю, что необходимая идентичность Windows не переходила к потоке Threadpool, которая фактически обрабатывала запрос (я никогда не пытался использовать подражание + асинхронное обработчик, но в прошлом я был прибит к другим проблемам потока потока).
Несмотря на это, истинный асинхенный обработчик дорого правильно реализовать. Если вы не строитесь на многих других асинхронных инфраструктуре (асинхронный ввод -ввод, асинхронный клиент DB и т. Д.), Это не приносит вам ничего хорошего (на самом деле, даже в лучших случаях, асинхронные обработки причиняют необработанные производительность). Я бы посмотрел, действительно ли ваши потребности в производительности действительно оправдывают дополнительные хлопоты и накладные расходы асинхронного обработчика (например, вам нужно обслуживать гораздо больше параллельных запросов, чем потоки в процессе и т. Д.).