簡體   English   中英

拒絕訪問路徑“ Global \\ {xxx} _YYY-YYY:13552”。 遲發型?

[英]Access to the path 'Global\{xxx}_YYY-YYY:13552' is denied. Hangfire?

如標題所述,我在MVC Web應用程序中遇到“訪問路徑”錯誤。 站點應用程序池是具有身份網絡服務的DefaultAppPool。 我已經為網絡服務用戶設置了完全控制權,但是沒有運氣,然后我嘗試賦予所有人完全控制權,但仍然無法正常工作。 我正在從同一文件夾(C:\\ Users \\ YYY \\ Documents \\ Visual Studio 2015 \\ Projects)運行另一個應用程序,它的工作沒有問題。

失敗的文件包含啟動Hangfire的方法。 這可能與它有關嗎?

我正在使用IIS 10.0運行Windows 10 Pro。

public void Start()
{
    lock (_lockObject)
    {
        if (_started) return;
        _started = true;

        HostingEnvironment.RegisterObject(this);

        GlobalConfiguration.Configuration
            .UseSqlServerStorage("connection string");
            // Specify other options here
        _backgroundJobServer = new BackgroundJobServer();
    }
}

http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

的當前權限

C:\\ Users \\ YYY \\ Documents \\ Visual Studio 2015 \\ Project

安全設定

“ /”應用程序中的服務器錯誤。

拒絕訪問路徑“ Global {4deecd4f-19f6-426b-xxxx-xxxxxxxxxxxx} _YYY-YYY:13552”。

說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。

異常詳細信息:System.UnauthorizedAccessException:拒絕訪問路徑“ Global {4deecd4f-19f6-426b-xxxx-xxxxxxxxxxxx} _YYY-YYY:13552”。

沒有授權ASP.NET訪問請求的資源。 考慮將資源的訪問權限授予ASP.NET請求標識。 ASP.NET具有一個基本進程標識(在IIS 5上通常為{MACHINE} \\ ASPNET或在IIS 6和IIS 7上為Network Service,在IIS 7.5上通常是配置的應用程序池標識),如果應用程序沒有模擬,則使用該標識。 如果應用程序通過進行模擬,則身份將是匿名用戶(通常為IUSR_MACHINENAME)或經過身份驗證的請求用戶。

要授予ASP.NET對文件的訪問權限,請在文件資源管理器中右鍵單擊該文件,選擇“屬性”,然后選擇“安全性”選項卡。 單擊“添加”以添加適當的用戶或組。 突出顯示ASP.NET帳戶,然后選中所需訪問權限的框。

源錯誤:

第36行:_backgroundJobServer = new BackgroundJobServer();

找到了問題,我在同一應用程序池上運行了兩個運行Hangfire的網站。 當我為每個網站創建一個新的應用程序池時,所有內容都開始工作。

似乎在同一應用程序池上運行時,兩個Hangfire實例都試圖通過同一端口進行通信,因此,首先啟動的應用程序是唯一可以運行的應用程序。 它們之所以在同一個應用程序池中,是出於純粹的惰性,我只在本地IIS的Visual Studio中創建了一個虛擬目錄來運行該項目。

在此處輸入圖片說明

暫無
暫無

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

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