2012-05-21 2 views
2

네트워크 드라이브에서 공유되는 폴더에 Bunch of Files가 있습니다. 나는 그 파일들을 나의 코드에 접근하려고 노력하고있다.네트워크 위치에서 파일 읽기

System.IO.DirectoryNotFoundException was unhandled by user code

Fname = txtwbs.Text; 
DirectoryInfo objDir = new DirectoryInfo("Y:\\"); 
_xmlpath = objDir + "\\" + Fname + "\\" + Fname + ".xml"; 
if (File.Exists(_xmlpath)) 
{ 
    reader(_xmlpath); 
} 

나는 또한 사용했다 :

file = fopen("\\\\10.0.2.20\\smartjobs\\Eto\\"+Fname); 

내가 내 로컬 PC에서 파일을 읽을 수 생각하지만 전용 네트워크 위치 호야의 예외를주고있다 그러나 그것은 오류를주고있다 네트워크 공유 위치에서 파일을 읽는 방법을 알려주십시오.

또한 어떻게 폴더의 트리보기를 Asp.net 웹 응용 프로그램으로 만들 수 있습니까?

디렉토리 구조는 XML 문서를 가진 폴더의 번호를 congaing되는

\\10.0.2.20\Smartjobs\Eto\ 

이있다 상위 디렉토리 같다.

+0

당신은 탐색기 창에서로 다른 위치에서 파일을 볼 수 있습니다

당신이 할 수있는 다음 생각은, 예를 들어, 네트워크 공유 이름을 통해 연결을 시도 직접입니까? 컴퓨터에 읽기 권한이 없을 수도 있습니다. – npinti

+0

응용 프로그램 풀은 어떤 ID로 실행됩니까? 그 신원은 네트워크 드라이브에 대한 액세스 권한이 없을 가능성이 큽니다. –

답변

0

ASP.net 페이지를 파일에 대한 액세스 권한이있는 특정 사용자로 실행하도록 지정해야합니다. 그런 다음 web.config 파일에서 impersonation을 활성화해야 ASP.net에서 실제로 user이라는 파일에 액세스 할 수 있습니다.

Your Y drive is a mapped network drive. You need to use the network url eg \\server\Smartjobs\Eto\xyz.xml

당신은 network에 파일의 name을 지정하면 다른 곳에서 할 것처럼 :

Dim myStream As IO.FileStream = IO.File.Open("\\myserver\myshare\myfile", IO.FileMode.Open) 
Dim myBytes As Byte() 
myStream.Read(myBytes, 0, numberOfBytesToRead) 

더 많은 참조 :
Unable to List File or Directory Contents on ASP.NET Page using Shared Drive
asp.net에서 Using file on network via IIS

1

, asp.net은 익명의 사용자 계정으로 실행되기 때문에 네트워크 폴더에 직접 액세스 할 수 없습니다. 해당 위치에 대한 액세스 권한이 있어야합니다.

해당 공유 위치의 "모든 사용자"에게 권한을 부여하고 작동하는지 확인할 수 있습니다. 그러나 이것은 권장되지 않습니다.

Alternativly 네트워크 위치에 액세스 할 때 asp.net 코드에서 가장을 수행해야 할 수 있습니다. 해당 공유 위치에 액세스 할 수있는 사용자와 도용을해야합니다.

0

공유 디렉터리를 사용자로 매핑 할 수 있지만 asp.net이 풀 계정에서 실행되고 y : \를 공유 디렉터리에 연결하지 않았다는 것을 잊었을 수 있습니다. \\SharedCom\fulldir\file.xml