Iis-7

IIS7 託管 API 經典 ASP 連接顯示“InvalidSecurity 驗證消息安全性時發生錯誤”

  • October 6, 2011

在 II7 上,我們託管了一個基於 WCF/asp.net 的 API。為了允許經典 ASP 應用程序的使用者連接到 API,我們必鬚髮布一個我們稱為“傳輸”的版本。這個 Transport 版本也是用 asp.net 寫的,它指向同一個程序集,只是安全層不同,可以讓經典的 asp 進行身份驗證。使用傳輸級安全性,而不是基於消息的安全性。

當使用瀏覽器載入服務引用時,我可以載入 svcutil.exe … WDSL 頁面。

當使用我的測試 asp 頁面從該引用呼叫 web 方法時,我得到以下返回:

已完成呼叫 Web 服務。狀態 = 內部伺服器錯誤 ResponseText = a:InvalidSecurity 驗證消息的安全性時發生錯誤。

這表明身份驗證失敗。當使用 asp.net 或應用程序 WCF 風暴來聯繫正常的 API 進行測試時,一切正常。

API 最近被遷移,看起來有些東西沒有正確設置,但我不知道是什麼。

我可以瀏覽到 svcutil.exe … WDSL 服務參考,當通過瀏覽器選擇它時,我得到了預期的 XML 響應。

使用基於消息的安全性的 API 的非經典 asp publicaiton 時,使用的使用者名和密碼有效。

是否可以發布一些可能有助於診斷問題的故障排除技巧,請特別針對傳輸級安全故障查找和設置?

謝謝斯科特

參考 _http://theether.net/kb/100127

load cmd prompt CD 到 C:\Windows\System32\inetsrv 輸入:appcmd list config -section:system.webServer/asp 顯示如下路徑:c:\inetpub\conf\temp\ASP 編譯模板檢查路徑是否存在(確實) 檢查 NETWORK SERVICE 是否有權限訪問“ASP 編譯的模板”如果不是從 appcmd 執行

icacls “c:\inetpub\conf\temp\ASP 編譯模板” /grant “網路服務:(OI)(CI)(M)”

應閱讀“成功處理 1 個文件”

重新啟動應用程序池。

“驗證消息安全性時發生 InvalidSecurityAn 錯誤”問題仍然存在,但事件日誌中的“無法創建磁碟記憶體子目錄 ….”錯誤不再發生。

抱歉又更新了。網路服務權限更改並沒有解決問題,更改為預設應用程序池解決了問題。

終於有先機了 檢查:

ServiceSecurityAudit 在服務行為中設置。_http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/# IIS 日誌(僅顯示非特定錯誤 500。)啟用故障跟踪(也顯示錯誤 500)。自定義錯誤已關閉 友好的 IE 消息已關閉 在 ProcessMon running 上,Asp 客戶端和伺服器端調試,沒有錯誤。Web.config httpErrors errorMode=“Detailed” /> + ServiceSecurityAudit 發現“對象引用未設置為對象的實例”,所以聽起來我們的應用程序有錯誤。

跟進 (06/10/11):

此處記錄的服務安全審計:

http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/

是我們解決這個問題的關鍵。發現對象引用錯誤表明業務對象和數據訪問 dll 不對齊。使用 CLASSIC ASP 使用 TRANSPORT AUTHENTICATION 聯繫 WCF.NET API,在 WCF 部署中的 behavior.config 文件上啟用服務安全審核之前,絕對沒有任何跡象表明此錯誤。

  • 解決 *

引用自:https://serverfault.com/questions/298027