Freigeben über


404-Datei oder Verzeichnis wurde nicht gefunden beim Zugriff auf Microsoft Dynamics CRM 2011 mit anspruchsbasierter Authentifizierung

Dieser Artikel bietet eine Lösung für das Problem, dass Sie aufgrund des Fehlers "404 - Datei oder Verzeichnis nicht gefunden" nicht auf Microsoft Dynamics CRM 2011 mit anspruchsbasierter Authentifizierung zugreifen können.

Gilt für: Microsoft Dynamics CRM Online
Ursprüngliche KB-Nummer: 2847921

Symptome

Beim Versuch, mit anspruchsbasierter Authentifizierung auf Microsoft Dynamics CRM 2011 zuzugreifen, tritt möglicherweise eine Fehlermeldung mit 404-Datei oder Verzeichnis nicht gefunden auf.

Der folgende Fehlerstapel befindet sich in der Ereignisanzeige, nachdem das AD FS-Ablaufverfolgungsprotokoll auf dem AD FS-Server aktiviert wurde:

Protokollname: AD FS 2.0-Ablaufverfolgung/Debug
Quelle: AD FS 2.0-Ablaufverfolgung
Datum: mm/tt/jjjj 00:00:00 nachmittags
Ereignis-ID: 67
Aufgabenkategorie: Keine
Ebene: Fehler
Schlüsselwörter: ADFSProtocol
Benutzer: NETZWERK SERVICE
Rechner: SERVER
Beschreibung:
Fehler beim Verarbeiten der Webanforderung, da die Anforderung ungültig ist. Die Protokollnachricht kann von der HTTP-Abfrage nicht abgerufen werden. Beim Analysieren eingehender HTTP-Anforderung sind die folgenden Fehler aufgetreten:

Microsoft.IdentityServer.Protocols.Saml.HttpSamlMessageException: MSIS7015: Diese Anforderung enthält nicht die erwartete Protokollnachricht oder falsche Protokollparameter wurden gemäß den HTTP-SAML-Protokollbindungen gefunden.
at Microsoft.IdentityServer.Web.HttpSamlMessageFactory.CreateMessage(HttpContext httpContext)
bei Microsoft.IdentityServer.Web.FederationPassiveContext.EnsureCurrent(HttpContext context)

Ursache

IIS Applicationhost.config ist unvollständig. Dies kann durch eine beschädigte oder unvollständige Installation von AD FS verursacht werden. Mindestens einer der folgenden Speicherortpfade und deren Einstellungen wurden entfernt:

<Standortpfad="Standardwebsite/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">

Lösung

Um dieses Problem zu beheben, müssen Sie die folgenden Schritte ausführen:

  1. Beenden des IIS-Diensts auf dem AD FS-Server

  2. Beenden des AD FS-Diensts auf dem AD FS-Server

  3. Erstellen Sie eine Kopie der Datei "applicationhost.config", und öffnen Sie dann die Datei "applicationhost.config", die sich befindet: C:\windows\system32\inetsrv.

  4. Überprüfen Sie diese Datei auf fehlende Dateispeicherortpfade. Aktualisieren Sie diese Datei so, dass alle Dateispeicherortpfade eingeschlossen werden, wie unten dargestellt.

    <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. Starten Sie den IIS-Dienst auf dem AD FS-Server.

  6. Starten Sie den AD FS-Dienst auf dem AD FS-Server.

Weitere Informationen

Weitere Informationen finden Sie unter Aktivieren der Debugprotokollierung für Active Directory-Verbunddienste (AD FS) 2.0 (AD FS 2.0).