2011-03-04 152 views
0

我有一個ASP.NET MVC應用程序,它嘗試使用文件流和File.OpenRead()讀取文件。 當文件的路徑是同一個工作組上的共享,並且我爲該共享提供了訪問NETWORK SERVICE時,此功能完全按照需要工作。File.OpenRead()訪問工作組中的共享文件,但不訪問遠程共享?

但是,當共享路徑是LAN中遠程共享的UNC路徑時,讀取權限爲「Everyone」打開時,「File.OpenRead()」方法會引發異常,說「無法找到路徑的一部分「。

在我的測試案例中,我正在調試本地ASP.NET MVC應用程序被賦予一個UNC路徑到它實際運行的計算機。 這是我C驅動器上的一個共享,被「共享」,並具有讀取權限「Everyone」的權限。

在IIS中是否有需要配置的東西? 如果我嘗試模擬,在這種情況下,模擬並不重要,因爲NETWORK SERVICE是用於在同一工作組中共享共享時嘗試訪問文件的用戶。

+0

發佈一些代碼,並驗證了文件的路徑? – 2011-03-04 20:38:03

回答

0

驗證共享權限以確保將權限授予NETWORK SERVICE帳戶以便能夠訪問共享。共享需要權限以及實際的文件/文件夾。

的[]

+0

我認爲,因爲我給共享權限「所有人」,這並不重要。我明確地將共享的權限授予「網絡服務」,同樣的結果。這就像它無法找到路徑或文件,而不是它是一個權限問題? – 2011-03-04 19:36:47

+0

我還沒有問過你,你的應用程序是如何配置的(Windows Auth與Forms Auth,哪個用戶放在運行你的網站的iss應用程序池中,你使用集成安全,匿名訪問等)?這種信息可以幫助我們幫助你... 順便說一下,看看這個鏈接,看看它是否適合你的情況:http://weblogs.asp.net/owscott/archive/2008/08/22/ IIS的Windows的身份驗證和最雙跳issue.aspx。 []的 – Fabio 2011-03-04 20:18:56