簡體   English   中英

為什么在Active Directory問題出現后,以域用戶身份運行的ASP.NET應用程序需要重新啟動才能使用PrincipalContext?

[英]Why would my ASP.NET application, running as a domain user, require a restart to use PrincipalContext after an Active Directory issue?

我有一個ASP.NET 4.5應用程序,該應用程序在具有特定域用戶名和密碼的應用程序池中運行。 好幾個月了。 幾天前,發生了一個Active Directory問題,我仍然不知道其詳細信息,但是我的應用程序用戶在此問題發生期間報告說,他們無法使用該應用程序。

AD問題最終得到“解決”,但是用戶仍然無法使用該應用程序-直到我回收了該應用程序池。

在回收之前,我正在捕獲以下第一次機會異常:

System.Runtime.InteropServices.COMException (0x8007052E): The user name or password is incorrect.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)

回收后,我不再看到此異常。

異常本身是由對PrincipalContext.FindByIdentity的調用生成的,直到我回收應用程序池之前,該調用一直失敗。

如果應用程序池憑據未更改,為什么在地球上應用程序池回收會改變PrincipalContext的行為?

使用域帳戶的應用程序池與AD域控制器一起使用以驗證域用戶。

由於我們不知道您的公司在AD中發生了什么,因此我們無法確切地說出原因。 我們只能假設或猜想它似乎導致了這一錯誤。

在AD高興之后重置池,再次重置此魔術。 魔術-正如我實際上並不了解幕后機制,但應用程序池依賴於AD對域用戶進行身份驗證。

您的默認應用程序池回收時間為29小時,最終也會對其進行修復。 您只是自己做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM