2013-05-31 2 views
1

저는 응용 프로그램의 솔루션 폴더에 Excel 파일을 작성하고 거기에서 읽고 저장하도록하는 기능이 있습니다. 로컬에서는 잘 작동하지만 서버에 배포 한 후에는 쓸 수 없으며 파일을 찾을 수 없다는 읽기 작업에 오류가 발생합니다.asp.net에 파일을 쓰거나 읽을 수 없습니다.

아래 코드를 참조하십시오.

Microsoft.Office.Interop.Excel.Workbook workbook; 
      Microsoft.Office.Interop.Excel.Worksheet NwSheet; 

      appExl = new Microsoft.Office.Interop.Excel.Application(); 
      string serverPath = Server.MapPath("."); 

      string filenameToLoad = serverPath + "\\Page1Reports\\" + Session["UserAccentureID"].ToString() + ".xls"; 


      FileStream fileStream = new FileStream(filenameToLoad, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); 
      fileStream.Write(result, 0, result.Length); 
      fileStream.Close(); 



//some more manipulation 

      workbook.Save(); 
      workbook.Close(); 
      appExl.Quit(); 



      System.IO.FileInfo file = new System.IO.FileInfo(filenameToLoad); 

      if (file.Exists) 
      { 
       Response.Clear(); 
       Response.ClearHeaders(); 
       Response.Charset = ""; 
       Response.ContentType = "Application/vnd.xls"; 
       Response.AddHeader("content-disposition", "attachment;filename=Page1SLScoreCardReport.xls"); 
       Response.AddHeader("Cache-Control", "max-age=0"); 
       Response.WriteFile(file.FullName); 

      } 

문제의 원인을 알려주세요.

+0

않는 IIS 사용자 디렉토리와 파일에 대한 적절한 권한이? –

+0

ADMIn에 대한 등록 정보 -> 보안 -> 권한으로 이동하여 USERS에게 권리가 있습니다. CREATOR OWNER가 모든 권한을 가지고 있지 않으며 업데이트도 허용하지 않았습니다. 나 또한 폴더에만 읽기 제거했습니다. 지금 제안하십시오. 다른 곳에서 확인해야합니까? – Richa

+0

정확히 어떤 오류가 발생 했습니까? 어떤 줄에 ?? – Pranav

답변

0

이 질문을 확인하십시오 : User ASP.NET runs under. IIS 버전을 기반으로 사용자가 실행되는 사용자를 표시합니다. 대부분의 경우 IIS/USRS 그룹에 폴더/파일 권한을 부여해야합니다 (IIS 7SP2 이상인 경우). (속성/보안 대화 상자 사용). 은 또한 당신이 MapPath을 제대로 eusing 아칸소 확인 : 1

UPDATE)

또한 때때로 멍청한 실수가 문제를 일으키는 하나입니다 ... 경로를 두 번 확인. .을 사용 중입니다. 어쩌면 ~이 원하는 것일 수 있습니다. 다음은 차이의 좋은 요약은 다음과 같습니다 Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). What is the difference?

enter image description here

+0

서버에 생성 된 경로가 올바르게 기록되어 있습니다. ( – Richa

+0

안녕하세요, 죄송합니다. 문제는 코드에 있습니다. FileStream fileStream = new FileStream (filenameToLoad, FileMode.Open, FileAccess.ReadWrite, FileShare. 읽기), 파일 모드가 열렸습니다. 파일이 없으므로 기존의 파일을 대체 했으므로 작성하지 못했습니다. 작성 및 작동 상태를 재개했습니다. 모든 지원에 감사드립니다. :) – Richa

+0

@ 리차드 감사합니다. 내게 알려주기 위해서. 솔루션을 찾을 수있어서 다행입니다! 해피 코딩;) –

관련 문제