更改應用程式集區識別碼後 ASP.NET 應用程式中出現 UnauthorizedAccessException

更改應用程式集區識別碼後 ASP.NET 應用程式中出現 UnauthorizedAccessException

我有一個在 Windows Server 2003 和 IIS 6 上執行的 SharePoint (MOSS 2007) 實例。使用 URL 存取 SharePointhttp://公司門戶並使用 URL 存取 ASP.NET 應用程式http://companyportal/apps/Default.aspx。請注意,SharePoint 和 ASP.NET 應用程式使用相同的應用程式集區。

最近,我決定將 ASP.NET 應用程式隔離到自己的應用程式集區中,因此它完全獨立於 SharePoint,因此無論出於何種原因開始消耗過多的資源,都不會為入口網站帶來任何問題。

因此,我為 ASP.NET 應用程式建立了一個新的應用程式集區。我建立了一個新的服務帳戶作為這個新應用程式集區的標識,並按照此中的步驟操作MSDN 部落格文章。我重新啟動了新的應用程式集區並瀏覽到 ASP.NET 應用程式。我觀察到的行為是:

  • 該應用程式載入速度非常慢。
  • 最終,顯示應用程式頁面,這意味著任何資料庫呼叫等都已成功。
  • 最後,我看到了System.UnauthorizedAccessException拋出。由於 Visual Studio 2008 位於同一台伺服器上,系統提示我開啟 Visual Studio 即時偵錯器,儘管這並未產生任何有用的信息。
  • 在事件檢視器中,我看到以下錯誤:

    • 資料來源:ASP.NET 2.0.50727.0(事件 ID 1334)

      發生未處理的異常,進程被終止。

      應用程式 ID:/LM/W3SVC/1/Root/apps

      進程ID:3028

      例外:System.UnauthorizedAccessException

      訊息:對連接埠的存取被拒絕。

    • 來源:.NET 執行時期 2.0 錯誤(事件 ID 5000)

      事件類型 clr20r3、P1 w3wp.exe、P2 6.0.3790.3959、P3 45d6968e、P4 系統、P5 2.0.0.0、P6 504057aa、P7 3bf9、P8 7a、P9 system.A.

在 Stack Overflow 上進行更多搜尋後,我執行了此步驟:

aspnet_regiis.exe -GA 網域\使用者名

這有助於使應用程式載入速度更快,但上述錯誤繼續出現在事件檢視器中。

如果我使用執行 SharePoint 應用程式集的相同服務帳戶,我不會看到任何這些問題,但當我使用新的服務帳戶時,問題就會出現。所以我相信這與我設定服務帳戶的方式有關,但不確定我錯過了什麼!

答案1

您是否將自訂使用者新增至 IIS_WPG 群組?這是 IIS6 中的要求。運行 aspnet_regiis -GA 將授予 IIS_WPG 處理的部分但不是全部權限。

另請確保您的自訂帳戶至少具有磁碟讀取權限,儘管這不是您提到的錯誤的具體原因。

相關內容