2014-05-15 3 views
-2

내가 비주얼 스튜디오 2013 asp.net 및 C#UnauthorizedAccessException 파일

사용자가 자신의 정보를 입력하고 프레스 제출하고 PDF가 있도록 온라인 이력서 창조자를 사용하여 내 마지막 학기 프로젝트를위한 웹 사이트를 만드는거야을 저장할 때 생성됨 (iTextSharp).

문제는 Visual Studio에서 잘 실행되지만 온라인으로 게시하면 아래에 나와있는 오류가 발생합니다.

경로 'C : \ cv.pdf'에 대한 액세스가 거부되었습니다.

설명 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.

예외 정보 : System.UnauthorizedAccessException : 'C : \ cv.pdf'경로에 대한 액세스가 거부되었습니다.

ASP.NET은 요청한 리소스에 액세스 할 수있는 권한이 없습니다. 리소스에 대한 액세스 권한을 ASP.NET 요청 ID에 부여하는 것이 좋습니다. ASP.NET은 응용 프로그램이 가장하지 않는 경우 사용되는 기본 프로세스 ID (일반적으로 IIS 5의 {MACHINE} \ ASPNET 또는 IIS 6 및 IIS 7의 네트워크 서비스 및 IIS 7.5의 구성된 응용 프로그램 풀 ID)를 갖습니다. 응용 프로그램이을 통해 가장하는 경우 ID는 익명 사용자 (일반적으로 IUSR_MACHINENAME) 또는 인증 된 요청 사용자가됩니다.

ASP.NET 액세스를 파일에 부여하려면 파일 탐색기에서 파일을 마우스 오른쪽 단추로 클릭하고 "속성"을 선택한 다음 보안 탭을 선택하십시오. 적절한 사용자 또는 그룹을 추가하려면 "추가"를 클릭하십시오. ASP.NET 계정을 강조 표시하고 원하는 액세스 상자를 선택하십시오.

Stack Trace: 
[UnauthorizedAccessException: Access to the path 'C:\cv.pdf' is denied.] 
    System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +217 
    System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) +1305 
    System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) +60 
    System.IO.FileStream..ctor(String path, FileMode mode) +55 
    CV.createpdf() +86 
    CV.submit_Click(Object sender, EventArgs e) +364 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9753402 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +196 
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724 

myonlinecvcreator.azurewebsites.net 난 정말 내 마지막 해 프로젝트이며, 분명히, 내가 전달해야로서 나는 그것이 토요일에 의해 수행 한 필요로 걱정하기 시작하고

:)

+0

웹 사이트가 C 드라이브의 루트에 * 쓰기 * 액세스 권한을 갖고있는 것은 좋지 않습니다. 파일을 다른 곳에 저장하십시오. –

+0

C : 드라이브 아래에 CV를 직접 저장하고 있습니다! 어딘가에 별도의 폴더를 넣고 IUSR_ Ashish

+0

에 해당 폴더에 대한 권한 (보안 아래에서 해당 폴더를 마우스 오른쪽 단추로 클릭)을 부여하십시오. 단순히 "C : \"'에서 쓸 수있는 권한이 없습니다. 파일을 저장할 위치를 변경하고,'Server.MapPath'를 사용하여 경로를 만듭니다. – Fedor

답변

2

App_Data이라는 웹 응용 프로그램으로 만든 디렉토리가 있습니다. 거기에 파일을 만들 것을 제안합니다 :

string fileName = Server.MapPath("~/App_Data/cv.PDF"); 
관련 문제