Пожалуйста, посмотрите этот поток StackOverflow: Безопасен ли поток DbContext?
DbContext не является потокобезопасным, но вы можете создать новый для каждого потока. Если вы используете Задачи и тому подобное, убедитесь, что для каждого из них создан новый DbContext.
Если можно отладить приложение, начинающее с HttpApplication. BeginRequest в global.asax и ступающий через Систему. Опорный источник сети был бы грубой силой путь.
С другой стороны, установите точку останова на HttpResponse. Перенаправление (строка, bool) и следует за стеком вызовов - я сомневаюсь, что существуют любые другие пути который использование во время выполнения перенаправить запрос.
Если это ничего не поднимает (или Вы не можете отладить), и так как метод грубой силы, вероятно, будет вести через большое количество кода - и кажется, что Вашей проблемой является связанная безопасность - Вы могли, вероятно, просто сцепить HttpApplication. AuthenticateRequest и HttpApplication. AuthorizeRequest, (и это связало Сообщение* события), и видящий, на что вещи похожи там.
Если Вы используете Аутентификацию Форм, я, оказывается, знаю, что FormsAuthenticationModule ищет код состояния 401 в HttpApplication. EndRequest, чтобы решить, перенаправить ли запрос. Что-либо, что устанавливает 401 (доступ запрещен), приведет к перенаправлению - не 401, возвращаемые к браузеру.
Кроме того, если это только происходит в Вашем производственном приложении, Вы смогли узнавать то, что продолжает использовать WinDBG. Свободно после этой статьи Вы сделали бы следующее:
.loadby sos mscorwks
который загрузит модуль SOSsxe clr
установить контрольные точки на исключениях CLRg
продвигатьсяТеперь Ваше приложение повредится на любом исключении. Начиная с Ответа. Перенаправление обычно бросает ThreadAbortException, который это мог бы быть простой способ повредить. Затем сделайте a !printexception
получить отслеживание стека. Можно также сделать a ~*e!clrstack
если мое нечто WinDBG не приводит меня к сбою для наблюдения управляемого стека для всех потоков, в настоящее время выполняющихся.
Обратите внимание замораживание процесса w3wp, в то время как Вы прерваны, так быть быстрыми!
Надо надеяться, можно использовать другой метод вместо этого, но если все остальное перестало работать, это могло бы помочь Вам начать.
Когда запрос выполнен к аутентификации требования страницы asp.net, перенаправлениям asp.net к указанной странице входа в систему с предоставлением аргумента ReturnUrl querystring, определяющего исходную требуемую страницу по умолчанию. В то время как этот ReturnUrl настраивается, если Вы не изменили конфигурацию, это - присутствие, должен указать на ту отказавшую аутентификацию.
В этом случае Вы должны быть сфокусированы на поиске и устранении неисправностей настроек аутентификации для страницы. Ответ Gordon Bell выглядит хорошим для этого.
<system.web>
...
</system.web>
<location path="NoAuthNeeded.aspx">
<system.web>
<authorization>
<allow roles="*" />
<allow roles="?" />
</authorization>
</system.web>
</location>
Вы попытались включить Трассировку? Это может помочь.
Как Вы указывающий, что страница не требует аутентификации, как:
<system.web>
...
</system.web>
<location path="NoAuthNeeded.aspx">
<system.web>
<authorization>
<allow roles="*" />
<allow roles="?" />
</authorization>
</system.web>
</location>
Поместите точку останова в начале каждого обработчика HTTP и уведомления, какой является последним вызванным обработчиком, прежде чем перенаправление произойдет. Вы, вероятно, найдете причину проблемы в той.