2017-04-18 9 views
0

원격 서버에서 액세스하여 bak 파일을 다운로드하려고하는데 "주어진 경로의 형식이 지원되지 않습니다."라는 오류가 계속 발생합니다. 나는 아래 사용하고 코드 :C# 주어진 경로 형식이 지원되지 않습니다. UNC 경로

string uncPath = Server.MapPath(Path.Combine(@"\\TSTSVR\Users\temp_databaseBackups_000kfkf000", string.Format("{0}-{1}.bak", 
      ddlDatabases.SelectedValue, DateTime.Now.ToString("yyyy-MM-dd")))); 

     //download 
     WebClient webClient = new WebClient(); 
     webClient.DownloadFile(uncPath, ddlDatabases.SelectedValue + "-" + DateTime.Now.ToString("MM-dd-yyyy:hh:mm")); 

나는 DownloadFile 줄에서 오류가 발생하고있다. UNC 경로가 잘못되었다고 선언하고 있습니까? 폴더가 서버에 있으며 쓰기 권한이있는 모든 사용자에게 액세스 권한을 설정합니다.

+0

글쎄, 당신이 시도하는 것은별로 의미가 없습니다. 파일이 웹 서버에 있습니까? 나는 당신이 WebClient 객체를 사용하고 있다고 가정합니다. – JuanR

+0

여기서 무엇을하려고하는지 잘 모르겠습니다 ... 'Server.MapPath'는 웹 사이트 경로를 실제 경로로 변환하도록 설계되었습니다. UNC 경로를 전달하려고 시도하는 것은 의미가 없습니다. 실제로 UNC 경로를 웹 경로로 변경하려고합니까? 그렇다면 그렇게 할 수 없습니다. – Chris

+0

파일이 해당 경로의 원격 서버에 있습니다. – kristech

답변

-1

원격 컴퓨터가 Windows 컨트롤에서 작동하는 경우 경로에 콜론을 사용할 수 없습니다. 나는 다음과 같은 코드로 문제를 해결 모두에서 올바른 방향으로 몇 가지 힌트의 도움으로

0

:

 string uncPath = Path.Combine(@"\\TSTSVR\Users\temp_databaseBackups_000kfkf000", string.Format("{0}-{1}.bak", 
      ddlDatabases.SelectedValue, DateTime.Now.ToString("yyyy-MM-dd"))); 

     //download 
     Response.ContentType = "bak"; 
     Response.AddHeader("Content-Disposition", "attachment;filename=\"" + ddlDatabases.SelectedValue + "-" + DateTime.Now.ToString("MM-dd-yyyy:hh:mm") + "\""); 

     Response.TransmitFile(uncPath); 
     Response.End(); 

이 프로그램은 이제 원격 서버에서 파일 필요성을 다운로드합니다.