我正在使用visual studio 2013 asp.net和C#
为我的最后一年项目创建一个网站这是一个在线简历创建者,因此用户输入他们的详细信息并按提交并生成PDF(iTextSharp)。
问题是它从Visual Studio运行良好但是当我在线发布时,它给出了一个错误,可以在下面找到。
拒绝访问路径“C:\ cv.pdf”。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.UnauthorizedAccessException:拒绝访问路径“C:\ cv.pdf”。
ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为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 :(得分:2)
使用名为App_Data
的Web应用程序创建了一个目录。我建议你在那里创建文件:
string fileName = Server.MapPath("~/App_Data/cv.PDF");