文章編號: 939761 - 上次校閱: 2007年7月27日 - 版次: 1.0

當您設定 Web 服務的強化功能 3.0 基礎的 Web 服務,以使用安全對話,0 可能記錄的事件識別碼::"發生錯誤處理的傳出錯誤回應 」

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

考慮下列案例。設定一個 Microsoft Web 服務的強化功能 3.0 (WSE 3.0)-根據 Web 服務使用安全對話。您設定應用程式集區在網際網路資訊服務 (IIS) 使用自訂的使用者帳戶來執行 Web 服務。在這種情況下可能會記錄下列錯誤事件:
事件 1

事件類型: 錯誤
事件來源: Microsoft WSE 3.0
事件類別: 無
事件識別碼: 0
日期: 5/19/2007
時間: 3:30:00 PM
使用者: N/A
電腦: ServerName
描述:
處理外寄的錯誤回應時發生錯誤。

事件 2

事件類型: 錯誤
事件來源: Microsoft WSE 3.0
事件類別: 無
事件識別碼: 0
日期: 5/19/2007
時間: 3:30:00 PM
使用者: N/A
電腦: ServerName
描述:
System.ApplicationException: WSE841: 發生錯誤處理的傳出錯誤回應。
System.Web.Services.protocols.SoapException: System.Web.Services.protocols.SoapException: 伺服器無法處理要求。
System.Security.Cryptography.CryptographicException: 系統找不到指定的檔案。

附註在這些事件發生"這個字是找到拼字錯誤的單字發生 」。

發生的原因

如果您設定 Web 服務使用安全對話,方法是原則] 的 [EstablishSecurityContext] 屬性設定為 true,預設值,WSE 3.0 會使用有狀態的 SecurityContextToken 物件。WSE 3.0 會使用資料保護 API (DPAPI),編碼 SecurityContextToken 物件的狀態,並解碼 SecurityContextToken 物件的狀態。或 WSE 3.0 使用 [DPAPI 編碼 SecurityContextToken 物件 Cookie,並解碼 SecurityContextToken 物件 Cookie。

如果未載入使用者設定檔的應用程式集區識別 WSE 3.0 無法呼叫 [DPAPI,就會發生這個問題。

其他可行方案

如果要解決這個問題而定,使用 [下列的其中一個方法]。

方法 1

設定應用程式集區識別成已載入使用者設定檔是一個使用者帳戶執行。比方說設定成網路服務帳戶執行應用程式集區識別。

方法 2

以手動方式載入應用程式集區識別使用者設定的檔。如果要執行此動作使用其中一個下列的方法。

方法 A

請依照下列步驟執行:
  1. 使用使用者帳戶登入該電腦然後再執行一項不變更使用者帳戶。
  2. 這個使用者帳戶建立 Microsoft Windows 服務,或執行 Windows 服務。
  3. 設定 Windows 服務,讓使用者帳戶可以與桌面互動。

方法 B

若要載入使用者設定檔,呼叫 LoadUserProfile 函式。

方法 3

停用的 Web 服務可設定狀況的 SecurityContextToken 物件藉由設定 statefulSecurityContextToken 項目。比方說您可以使用應用程式組態檔包含下列程式碼,以停用可設定狀況的安全性語彙基元
<tokenIssuer>
     <statefulSecurityContextToken enabled="false"/>
   </tokenIssuer>

方法 4

若要設定 Web 服務使用安全對話、 使用 X X509 憑證或使用另一個安全性語彙基元 (Token) 輸入而非使用預設 DPAPI 實作。若要執行此動作設定每個 Web 伺服器的應用程式組態檔中的 [serviceToken 項目]。下列程式碼,例如設定 Web 服務使用 X509 憑證而非使用預設 DPAPI 實作
<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>

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

當您將 SOAP 訊息傳送狀態式 SecurityContextToken 物件被序列化搭配可僅由 Web 服務擷取的加密金鑰。起,相反依用戶端和 Web 服務,會被快取沒有狀態 (Stateless) SecurityContextToken 物件的加密的金鑰。因此,唯一的字串,表示快取的 SecurityContext 安全性權杖必須傳送 SOAP 訊息中。快取可用時,就會不發生任何問題。如果您使用無狀態 SecurityContextToken 物件並已裝載 Web 服務的應用程式定義域會重設,會摧毀快取。因此,將 SOAP 會發生錯誤。

附註有些病毒掃描程式可能會造成應用程式定義域來重設。

如果要重現問題的步驟

  1. 開啟快速 WSE 3.0 安全對話入門範例。預設情況下,這個範例會位於下列位置:
    drive: \Program Files\Microsoft WSE\v3.0\Samples\CS\QuickStart\Security\SecureConversation\Policy
  2. 設定應用程式集區使用自訂的使用者帳戶執行這個範例中的 Web 服務。還未載入的應用程式集區識別使用者設定檔。
  3. 執行快速 WSE 3.0 安全對話入門範例。

?考

如需有關如何疑難排解 「 DPAPI 的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
309408? (http://support.microsoft.com/kb/309408/ ) 如何疑難排解資料保護 API (DPAPI)
如需有關 Windows 資料保護的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
http://msdn2.microsoft.com/en-us/library/ms995355.aspx (http://msdn2.microsoft.com/en-us/library/ms995355.aspx)
如需有關 LoadUserProfile 函式的詳細資訊,請造訪下列 MSDN 網站:
http://msdn2.microsoft.com/en-us/library/aa374341.aspx (http://msdn2.microsoft.com/en-us/library/aa374341.aspx)

這篇文章中的資訊適用於:
  • 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
關鍵字:?
kbmt kbexpertiseadvanced kbtshoot kbprb KB939761 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:939761? (http://support.microsoft.com/kb/939761/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。