Artikel-ID: 939761 - Geändert am: Freitag, 27. Juli 2007 - Version: 1.0

Ereignis-ID: 0 möglicherweise protokolliert werden, wenn Sie einen Web Services Enhancements 3.0-basierten Webdienst eine sichere Konversation mit konfigurieren: "ist ein Fehler aufgetreten Verarbeitung einer ausgehenden fault Antwort"

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Stellen Sie sich das folgende Szenario vor. Konfigurieren Sie eine Microsoft Web Services Enhancements 3.0 (WSE 3.0)-basierten Webdienst, um eine sichere Konversation zu verwenden. Sie konfigurieren den Anwendungspool in Internet Information Services (IIS) an ein benutzerdefiniertes Benutzerkonto zum Ausführen des Webdienstes. In diesem Szenario können die folgenden Fehlerereignisse protokolliert werden:
Ereignis 1

Ereignistyp: Fehler
Ereignisquelle: Microsoft WSE 3.0
Ereigniskategorie: Keine
Ereignis-ID: 0
Datum: 5/19/2007
Zeit: 3:30:00 PM
Benutzer: NV
Computer: ServerName
Beschreibung:
Fehler beim Verarbeiten einer ausgehenden Fehlertoleranz-Antwort.

Ereignis 2

Ereignistyp: Fehler
Ereignisquelle: Microsoft WSE 3.0
Ereigniskategorie: Keine
Ereignis-ID: 0
Datum: 5/19/2007
Zeit: 3:30:00 PM
Benutzer: NV
Computer: ServerName
Beschreibung:
System.ApplicationException: WSE841: fault-Antwort ist eine ausgehende Verarbeitung ein Fehler aufgetreten.
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server konnte die Anforderung nicht verarbeiten.
System.Security.Cryptography.CryptographicException: Das System kann die angegebene Datei nicht finden.

Hinweis: In diesen Ereignissen ist das Wort "ist aufgetreten" einen Rechtschreibfehler für das Wort "aufgetreten."

Ursache

WSE 3.0 verwendet standardmäßig das statusbehaftete SecurityContextToken -Objekt, wenn Sie den Webdienst konfigurieren an einen sicheren Datenaustausch verwenden, indem die EstablishSecurityContext -Eigenschaft der Richtlinie auf true festlegen. WSE 3.0 verwendet Data Protection API (DPAPI), um den Zustand des SecurityContextToken -Objekts Codieren und Decodieren den Zustand des Objekts SecurityContextToken . Oder WSE 3.0 verwendet die DPAPI, um das Cookie des SecurityContextToken -Objekts Codieren und decodieren das Cookie das SecurityContextToken -Objekt.

Dieses Problem, da WSE 3.0 die DPAPI kann nicht aufrufen, wenn das Benutzerprofil die Identität des Anwendungspools nicht geladen wird.

Abhilfe

Verwenden Sie um dieses Problem zu umgehen, eine der folgenden Methoden.

Methode 1

Konfigurieren der Anwendungspoolidentität zum Ausführen als ein Benutzerkonto für die das Profil des Benutzers bereits geladen ist. Z. B. Konfigurieren der Identität des Anwendungspools, als das Konto Netzwerkdienst ausgeführt.

Methode 2

Laden Sie das Benutzerprofil die Identität des Anwendungspools manuell. Verwenden Sie hierzu eine der folgenden Methoden.

Verfahren A

angezeigt wird, gehen Sie folgendermaßen vor:
  1. Verwenden Sie ein Benutzerkonto, auf dem Computer anzumelden, und dann ändern Sie das Benutzerkonto nicht.
  2. Erstellen Sie unter diesem Benutzerkonto ein Windows-Dienst, oder führen Sie einen Windowsdienst.
  3. Konfigurieren Sie den Windows-Dienst, sodass das Benutzerkonto mit dem Desktop interagieren kann.

Verfahren B

Um das Benutzerprofil zu laden, rufen Sie die LoadUserProfile -Funktion auf.

Methode 3

Deaktivieren Sie das statusbehaftete SecurityContextToken -Objekt des Webdiensts, indem Sie das StatefulSecurityContextToken -Element konfigurieren. Beispielsweise können Sie die Konfigurationsdatei der Anwendung, die den folgenden Code So deaktivieren Sie die statusbehaftete Sicherheitstoken enthält verwenden.
<tokenIssuer>
     <statefulSecurityContextToken enabled="false"/>
   </tokenIssuer>

Methode 4

Um den Webdienst an eine sichere Konversation, verwendet ein X 509-Zertifikat oder Verwendung konfigurieren Geben Sie einen anderen Sicherheitstoken anstelle der DPAPI-Standardimplementierung. Konfigurieren Sie dazu das ServiceToken -Element in der Anwendungskonfigurationsdatei jedes Webservers. Z. B. der folgende Code den Webdienst verwenden, ein X 509-konfiguriert Zertifikat anstelle der DPAPI-Standardimplementierung.
<microsoft.web.services3>
    <tokenIssuer>
      <statefulSecurityContextToken enabled="true"/>
      <serviceToken>
        <add>
          <KeyInfo>
            <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
              <wsse:KeyIdentifier ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509SubjectKeyIdentifier">bBwPfItvKp3b6TNDq+14qs58VJQ=</wsse:KeyIdentifier>
            </wsse:SecurityTokenReference>
          </KeyInfo>
        </add>
      </serviceToken>
    </tokenIssuer>
  </microsoft.web.services3>

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Wenn Sie eine SOAP-Nachricht senden, wird das statusbehaftete SecurityContextToken -Objekt zusammen mit einem verschlüsselten Schlüssel serialisiert, die nur durch den Webdienst abgerufen werden können. Der verschlüsselte Schlüssel des statusfreien SecurityContextToken -Objekts wird auf das Gegenteil vom Client und durch den Webdienst zwischengespeichert. Daher muss eine eindeutige Zeichenfolge, die das zwischengespeicherte SecurityContext -Sicherheitstoken darstellt, in SOAP-Nachricht gesendet werden. Wenn die Caches verfügbar sind, tritt kein Problem. Wenn Sie das statusfreie SecurityContextToken -Objekt verwenden und die Anwendungsdomäne, die den Webdienst hostet zurückgesetzt wird, werden die Caches zerstört. Tritt daher ein SOAP-Fehler auf.

Hinweis: Einige Virenscanner möglicherweise die Anwendungsdomäne zurückgesetzt werden.

Schritte zum Reproduzieren des Problems

  1. Öffnen Sie das WSE 3.0 sichere Unterhaltung Schnellstart-Beispiel. In diesem Beispiel wird standardmäßig an folgendem Speicherort:
    drive: \Program Files\Microsoft WSE\v3.0\Samples\CS\QuickStart\Security\SecureConversation\Policy
  2. Konfigurieren Sie einen Anwendungspool ein benutzerdefiniertes Benutzerkonto verwenden, um den Webdienst in dieses Beispiel auszuführen. Das Benutzerprofil die Identität des Anwendungspools ist noch nicht geladen.
  3. Führen Sie das WSE 3.0 sichere Unterhaltung Schnellstart-Beispiel.

Informationsquellen

Weitere Informationen zur Problembehandlung bei die DPAPI finden Sie im folgenden Artikel der Microsoft Knowledge Base:
309408  (http://support.microsoft.com/kb/309408/ ) Behandlung von Data Protection API (DPAPI)
Weitere Informationen zum Windows-Data Protection der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/ms995355.aspx (http://msdn2.microsoft.com/en-us/library/ms995355.aspx)
Weitere Informationen über die Funktion LoadUserProfile die folgenden MSDN-Website:
http://msdn2.microsoft.com/en-us/library/aa374341.aspx (http://msdn2.microsoft.com/en-us/library/aa374341.aspx)

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Studio 2005 Team Suite
  • Microsoft Visual Studio 2005 Team System Test Edition
  • Microsoft Visual Studio 2005 Team Foundation Server
  • Microsoft Visual Studio 2005 Team Edition for Database Professionals
  • Microsoft Visual Studio 2005 Team Edition for Software Architects
  • Microsoft Visual Studio 2005 Team Edition for Software Developers
  • Microsoft Visual Studio 2005 Team Edition for Software Testers
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
Keywords: 
kbmt kbexpertiseadvanced kbtshoot kbprb KB939761 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 939761  (http://support.microsoft.com/kb/939761/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.