2010-04-13 96 views
0

我有一個在Windows Server 2003服務器上運行的ASP.NET Web應用程序。ASP.NET授予對本地資源的訪問權

有一種表單可以讀取和寫入數據到應用程序目錄中的xml文件。

我總是授予NETWORK SERVICE用戶完全控制我的應用程序文件夾,以便它可以讀取和寫入xml文件。

我把應用程序放在另一個Windows Server 2003服務器上,並且執行了上面的相同步驟,但是我在讀取和寫入xml的表單上收到了一個Access拒絕異常。

我做了一些搜索,發現如果你授予用戶ASPNET完全控制它的工作目錄,我做到了這一點,它工作得很好。

我的問題是:什麼是授予完全控制權限NETWORK SERVICEASPNET用戶之間的區別?

和導致此問題的兩臺服務器之間有什麼區別?

感謝

回答

1

在所有情況下,您需要授予應用程序池的用戶帳戶相應的訪問權限。應用程序池是在IIS6中引入的。在IIS6之前,.NET應用程序在machine.config文件中配置的用戶帳戶下運行,以便在那裏查找以確定需要訪問的用戶。

網絡服務默認分配給應用程序池。這聽起來像是某人在其中一臺服務器上設置了不同的設置。

1

理想情況下,您不應該使用任一帳戶。

您應該創建一個低權限帳戶,該帳戶只能訪問您擁有的每個Web應用程序所需的資源。將新帳戶添加到IIS_WPG用戶組。然後爲每個應用程序創建一個應用程序池,並將其設置爲以專門爲其創建的用戶身份運行。

請參閱this article(TechNet)瞭解如何更改應用程序池的標識。

我描述的配置現在是Server 2008 R2/Win 7中的默認配置(source)。

不幸的是,由於有人更改了第二臺服務器上的默認配置,因此我們無法告訴您這兩個帳戶之間的區別是什麼。

您需要做什麼(或讓IT部門這樣做)是比較每個帳戶在本地計算機上的權限。這將是乏味的。但是,如果您可以運行PowerShell,則可以使用this article編寫腳本來列出每個帳戶的權限並進行比較。

祝你好運,找到差異。

相關問題