有個需求,需要訪問內網網絡共享文件夾中的文件,有域控限制。
一開始直接在本地映射一個網絡驅動器,然後像本地磁盤一樣訪問共享文件夾裏的文件,比如:Y:\ 。
然後直接在程序中訪問共享文件夾中的文件,如下代碼:
DirectoryInfo directoryInfo = new DirectoryInfo(@"\\10.10.65.14\文件夾"); if (directoryInfo.Exists) { FileInfo[] fileInfos = directoryInfo.GetFiles(); string result = String.Empty; foreach (FileInfo fileInfo in fileInfos) { result += fileInfo.Name + "\n"; } await MessageService1.Show(new MessageOption() { Content = result }); }
經過測試,發現調試程序時能夠訪問得到裏面的文件,但發佈程序後不能得到裏面的文件。初步判斷,IIS的某些設置權限沒有開放。
設置方法:
應用程序池-高級設置-標識-自定義賬戶,設置你登錄此係統的用戶名和密碼。
結論:
1. 登錄系統的賬號爲administrators管理員權限
2. 不能使用Y:\文件夾 這樣的路徑直接訪問,直接使用其網絡路徑,例如:\\10.10.65.14\文件夾
3. 項目發佈到IIS後,選擇應用程序池,設置應用程序池標識爲該賬號。