Поделиться через


404-файл или каталог не найден при доступе к Microsoft Dynamics CRM 2011 с аутентификацией на основе заявок

В этой статье приведено решение проблемы, при которой невозможно получить доступ к Microsoft Dynamics CRM 2011 с аутентификацией на основе утверждений из-за ошибки 404-File or Directory Not Found.

Область применения: Microsoft Dynamics CRM Online
Исходный номер базы знаний: 2847921

Симптомы

При попытке получить доступ к Microsoft Dynamics CRM 2011 с проверкой подлинности на основе утверждений может возникнуть сообщение об ошибке 404 – файл или каталог не найден.

Следующий стек ошибок можно найти в средстве просмотра событий после включения журнала трассировки AD FS на сервере AD FS:

Имя журнала: AD FS 2.0 трассировка/отладка
Источник: трассировка AD FS 2.0
Дата: дд.мм.гггг 00:00:00 ПП
Идентификатор события: 67
Категория задачи: Отсутствует
Уровень: ошибка
Ключевые слова: ADFSProtocol
Пользователь: сетевая служба
Компьютер: СЕРВЕР
Описание.
Не удалось обработать веб-запрос, так как запрос недопустим. Не удается получить сообщение протокола из HTTP-запроса. При попытке синтаксического анализа входящего HTTP-запроса произошли следующие ошибки:

Microsoft.IdentityServer.Protocols.Saml.HttpSamlMessageException: MSIS7015: этот запрос не содержит ожидаемое сообщение протокола или неправильные параметры протокола были найдены в соответствии с привязками протокола HTTP SAML.
в Microsoft.IdentityServer.Web.HttpSamlMessageFactory.CreateMessage(HttpContext httpContext)
в Microsoft.IdentityServer.Web.FederationPassiveContext.EnsureCurrent(HttpContext context)

Причина

Конфигурация IIS Applicationhost.config не завершена. Это может быть вызвано повреждением или неполной установкой AD FS. Один или все следующие пути расположения и их параметры были удалены:

<location path="Default Web Site/adfs">
<location path="Default Web Site/adfs/ls">
<location path="Default Web Site/adfs/ls/auth">
<location path="Default Web Site/adfs/ls/auth/integrated">
<location path="Default Web Site/adfs/ls/auth/sslclient">
<location path="Default Web Site/adfs/ls/auth/basic">

Решение

Чтобы устранить эту проблему, выполните указанные ниже действия.

  1. Остановка службы IIS на сервере AD FS

  2. Остановка службы AD FS на сервере AD FS

  3. Создайте копию файла конфигурации applicationhost.config, а затем откройте файл applicationhost.config, расположенный: C:\windows\system32\inetsrv

  4. Просмотрите этот файл для любых отсутствующих путей к расположению файлов. Обновите этот файл, чтобы включить все пути к расположению файла, как показано ниже.

    <location path="Default Web Site/adfs">
            <system.webServer>
                <handlers accessPolicy="Read" />
                <security>
                    <access sslFlags="Ssl, Ssl128" />
                    <authentication>
                        <windowsAuthentication enabled="false" useAppPoolCredentials="true">
                            <extendedProtection tokenChecking="Allow" />
                        </windowsAuthentication>
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="true" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
                <directoryBrowse enabled="false" showFlags="Date, Time, Size, Extension" />
                <defaultDocument enabled="true">
                    <files>
                        <clear />
                        <add value="default.aspx" />
                    </files>
                </defaultDocument>
            </system.webServer>
        </location>
        <location path="Default Web Site/adfs/ls">
            <system.webServer>
                <handlers accessPolicy="Read, Script" />
                <security>
                    <access sslFlags="Ssl, Ssl128" />
                    <authentication>
                        <windowsAuthentication enabled="true" useAppPoolCredentials="true">
                            <extendedProtection tokenChecking="Allow" />
                        </windowsAuthentication>
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="true" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
        <location path="Default Web Site/adfs/ls/auth">
            <system.webServer>
                <security>
                    <authentication>
                        <windowsAuthentication enabled="false" useAppPoolCredentials="true" />
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="false" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
        <location path="Default Web Site/adfs/ls/auth/integrated">
            <system.webServer>
                <handlers accessPolicy="Read, Script" />
                <security>
                    <authentication>
                        <windowsAuthentication enabled="true" useAppPoolCredentials="true" />
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="false" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
        <location path="Default Web Site/adfs/ls/auth/sslclient">
            <system.webServer>
                <handlers accessPolicy="Read, Script" />
                <security>
                    <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert, Ssl128" />
                    <authentication>
                        <windowsAuthentication enabled="false" useAppPoolCredentials="true" />
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="true" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
        <location path="Default Web Site/adfs/ls/auth/basic">
            <system.webServer>
                <handlers accessPolicy="Read, Script" />
                <security>
                    <authentication>
                        <windowsAuthentication enabled="false" useAppPoolCredentials="true" />
                        <clientCertificateMappingAuthentication enabled="false" />
                        <anonymousAuthentication enabled="true" />
                        <iisClientCertificateMappingAuthentication enabled="false" />
                        <digestAuthentication enabled="false" />
                    </authentication>
                </security>
            </system.webServer>
        </location>
    
  5. Запустите службу IIS на сервере AD FS.

  6. Запустите службу AD FS на сервере AD FS.

Дополнительная информация

Для получения дополнительной информации см. Как включить ведение журнала отладки для службы федерации Active Directory (AD FS 2.0).