DotNetNuke - Первый запрос возвращает 404

У меня проблема с платформой DotNetNuke, которую я не могу понять, хоть убей ... Поиски Google и SO не помогли.

В самый первый раз, когда любой пользователь пытается перейти на сайт, независимо от URL-адреса, который он запрашивает, он перенаправляется на URL-адрес, указанный ниже, и получает ошибку 404, показанную ниже. После этого первоначального 404, если пользователь запрашивает тот же самый URL, все будет отлично работать для этого пользователя в дальнейшем. Они перенаправляются на правильную страницу входа, и с этого момента все работает правильно.

Кто-нибудь знает, почему это происходит только при первом запросе к сайту для каждого пользователя? У меня настроены среды разработки, тестирования и производства, и проблема одинакова для всех сред.

Запрошенный URL: http://intranet.domain.com/page

Перенаправленный URL: http://intranet.domain.com/Login.aspx?ReturnUrl=/DesktopModules/AuthenticationServices/ActiveDirectory/WindowsSignin.aspx

Ошибка сервера в приложении '/'

Ресурс не может быть найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Просмотрите следующий URL-адрес и убедитесь, что он написан правильно.

Запрошенный URL: /Login.aspx

  • IIS: v7
  • DNN: v7.02.01
  • Аутентификация DNN по умолчанию отключена, и модуль аутентификации Active Directory включен. (v5.0.6)

Пожалуйста, дайте мне знать, если я могу предоставить какую-либо другую информацию о конфигурации.


person Schmalzy    schedule 27.08.2015    source источник
comment
Может, во второй раз все работает правильно из-за cookie или сеанса?   -  person alwaysVBNET    schedule 09.09.2015
comment
@alwaysVBNET Да, я тоже об этом думал, но я не уверен, с чего начать устранение неполадок, потому что все это выполняется DNN ...   -  person Schmalzy    schedule 09.09.2015
comment
Почему бы вам не установить версию с исходным кодом и отладить   -  person alwaysVBNET    schedule 09.09.2015
comment
Также есть ли что-нибудь зарегистрированное в средстве просмотра событий?   -  person alwaysVBNET    schedule 09.09.2015
comment
Было ли когда-либо найдено решение этой проблемы?   -  person user2389345436357    schedule 17.01.2017
comment
@ user2389345436357 Нет.   -  person Schmalzy    schedule 17.01.2017


Ответы (2)


Это не полное решение, но оно должно пролить свет на ситуацию. У меня возникла такая же проблема. Я бы пошел на сайт, и он перенаправил бы меня на

WebsiteLinkHere / DesktopModules / AuthenticationServices / ActiveDirectory / WindowsSignin.aspx

Об удалении

DesktopModules / AuthenticationServices / ActiveDirectory / WindowsSignin.aspx

это привело бы меня на мою домашнюю страницу, и с этого момента все работало так, как ожидалось. Я взял последний исходный код этого модуля с github и начал отладку. Я проследил ошибку до функции DNNUserController.ValidateUser (). Кажется, что это ничего не возвращает, что затем вызывает ошибку на странице. Я решил пока добавить исправление, которое может помочь другим.

В файле WindowsSignin.aspx.vb я добавил попытку уловить

objAuthentication.AuthenticationLogon ()

В операторе catch я добавил код, который используется для перенаправления вас после успешной аутентификации на страницу, с которой вы пришли.

Try
    objAuthentication.AuthenticationLogon()
Catch
    Dim querystringparams As String = "logon=" & DateTime.Now.Ticks.ToString()
    Dim strUrl As String = DotNetNuke.Common.NavigateURL(DotNetNuke.Entities.Portals.PortalSettings.Current.ActiveTab.TabID, String.Empty, querystringparams)
    If Not HttpContext.Current.Request.Cookies("DNNReturnTo") Is Nothing _
        Then
        querystringparams =
            HttpContext.Current.Request.Cookies("DNNReturnTo").Value
        'ACD-8445
        If querystringparams <> String.Empty Then querystringparams = querystringparams.ToLower
        If querystringparams <> String.Empty And querystringparams.IndexOf("windowssignin.aspx") < 0 Then _
            strUrl = querystringparams
    End If
    HttpContext.Current.Response.Redirect(strUrl, True)
End Try

Это не изящное решение, однако оно позволяет избежать того, что при первом посещении сайта пользователем появляется экран с ошибкой. Все остальное, кажется, работает, как и ожидалось, после первого посещения.

person user2389345436357    schedule 25.01.2017

Я наконец нашел ответ более чем через два года ...

Проблема была решена закомментированием строки "add name =" Authentication "..." в web.config. Это полностью отключило функцию автоматического входа в систему.

http://www.dnnsoftware.com/forums/threadid/459907/scope/posts/site-redirecting-to-desktopmodules-authenticationservices-activedirectory-windowssigninaspx

person Schmalzy    schedule 16.02.2018