2016-07-31 96 views
0

我有一個Asp Net Core RC2網站,它從服務器本地目錄(我們會說C:\temp)讀取一些文件。儘管我可以在Visual Studio中正常運行,但在部署到C:\inetpub\myWebSite(在IIS 10.0中運行)時無法運行。從Asp Net Core RC2網站使用IIS訪問本地目錄

我都想盡研究權限方面從StackOverflow上和其他地方,我能找到,包括賦予的權限來我IIS APPPOOL\myAppPoolNameIUSRIIS_IUSRS(我可以看到這些用戶擁有有效的讀訪問,無論是在高級權限編輯和共享) 。我已經嘗試了網站內容根目錄下的虛擬目錄和物理目錄。我嘗試將匿名身份驗證標識更改爲IUSR和應用程序池標識。

盡我所能,我無法在Visual Studio中以調試模式(IIS Express和控制檯應用程序版本按預期方式運行)從我目錄中讀取IIS應用程序網站的目錄。請注意,該網站按照其他目標從IIS內運行。另請注意,沒有明顯的錯誤;一切似乎正常運行,但顯然數據未被讀取。

我約90%確信它是一個權限問題或相關的IIS設置問題。對於IIS和Kestrel之間的隔離可能會有一些獨特之處,我只是不知道這會影響我實現我想要的功能的能力。

任何有用的想法或建議將不勝感激。

+0

**更新:**我回來試圖解決這個問題。我發現應用程序能夠移動有問題的文件,所以它肯定有權讀取它們。 我運行SQL Server Profiler,看起來問題是應用程序調用過程時,它甚至無法命中數據庫,但我仍然沒有收到任何錯誤。 – MapLion

回答

0

一旦我意識到它沒有觸及數據庫,我認爲這是一個IIS問題。我第一次嘗試爲SQL Server設置IIS APPPOOL\<AppPoolName>登錄,但沒有任何成功。然後我使用AppPool來運行Web應用程序所在的用戶,該用戶可以訪問數據庫並且可以工作。

的步驟如下:

  1. 打開IIS管理器
  2. 導航在左邊Application Pools
  3. 用鼠標右鍵單擊該應用程序池,你的應用程序運行,並選擇Advanced Settings...
  4. Process Model>Identity點擊它右側的方框,會出現一個省略號(三個點);點擊打開一個Application Pool Identity窗口
  5. 選擇'Custom Account radio button and click Set ...`並輸入您希望使用的用戶名和密碼,並使AppPool作爲(可訪問數據庫)運行。

另外,請記住,如果您正在運行.NET核心應用程序來將您的AppPool設置爲No Managed Code