2012-07-05 84 views
1

我在面對突然在ASP.NET應用程序中訪問文件時遇到了麻煩。 我無法訪問位於共享上的文件(與Web服務器不同的服務器)。IIS 7.5授權問題 - 網絡共享不可訪問

說, 我的開發機器是「A」 我有文件從服務器「B」訪問。

當我在asp.net中編寫代碼時,它在調試模式下工作正常。但是當我部署到IIS 7.5時,我得到了未經授權的例外。

的碼片:

保護無效的button1_Click(對象發件人,EventArgs的)

{   
     string filepath = @"\\ServerB\MyDocs\{0}"; //Here MYDocs folder is a shared folder in ServerB 
     string filename = "Resume.pdf"; 

     string fileFullName = String.Format(filepath,filename); 
     Response.TransmitFile(fileFullName);    
    } 

PDF文檔開闢了IE當我在調試模式下運行,但不是當我部署。

大部分的谷歌網頁稱,它將在IIS 7.5下的應用程序池標識運行。 但我無法弄清楚我還需要修改什麼。

注:我在匿名身份驗證運行 - >應用程序池標識

回答

1

我找到了認證問題的解決方案。

問題是我的Web服務器是Windows 2008 R2和文件共享是在Windows 2003服務器。 使用「IIS AppPool \ DefaultAppPool」標識運行的應用程序。但該用戶在Windows 2003 Server中不可用。

我改變了我的應用程序池的身份,以「網絡服務」,並給予權限「網絡服務」的用戶在2003年的服務器。 現在我可以打開文件應用程序。

我發現這個網站的這個有用的信息:http://www.element-it.com/OnlineHelpHTTPCommander/Windows/ntfs.html

0

請嘗試以下方法之一。

創建一個網絡驅動器,並使用它的驅動器盤符

string filepath = @"Z:\{0}"; 

嘗試谷歌和搜索「網絡dirve映射」。你會發現很多結果。

或者你可以給它運行的應用程序池的訪問權限給用戶。

並檢查您是否使用應用程序池的經典模式。

+0

嗨..謝謝。但驅動器映射不起作用。我在下面詳述的另一個站點中找到解決方案 – Aru 2012-07-10 14:13:14

+0

如果我們在應用程序池中使用經典流水線模式,該怎麼辦?這對阻止匿名訪問閱讀和下載PDF文件有什麼作用? – Bryan 2015-02-23 22:33:31