Asp.net System.UnauthorizedAccess保存文件时发生异常
我在IIS6上发布了我的网站 按file.WriteAllText(“C:\”+txtSaveExport.Text+“.CSV”,b.ToString())保存文件时;。其给出的错误如下: em.UnauthorizedAccessException:对路径“C:\hj.CSV”的访问被拒绝。ASP.NET无权访问请求的资源。考虑授予对ASP.NET请求标识的资源访问权限。ASP.NET有一个基本进程标识(通常是IIS 5上的{MACHINE}\ASPNET或IIS 6和IIS 7上的网络服务,以及IIS 7.5上配置的应用程序池标识),在应用程序未模拟时使用。如果应用程序是通过模拟的,则标识将是匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的请求用户 要授予ASP.NET对文件的访问权限,请在资源管理器中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加相应的用户或组。突出显示ASP.NET帐户,并选中所需访问权限的复选框``Asp.net System.UnauthorizedAccess保存文件时发生异常,asp.net,iis-6,Asp.net,Iis 6,我在IIS6上发布了我的网站 按file.WriteAllText(“C:\”+txtSaveExport.Text+“.CSV”,b.ToString())保存文件时;。其给出的错误如下: em.UnauthorizedAccessException:对路径“C:\hj.CSV”的访问被拒绝。ASP.NET无权访问请求的资源。考虑授予对ASP.NET请求标识的资源访问权限。ASP.NET有一个基本进程标识(通常是IIS 5上的{MACHINE}\ASPNET或IIS 6和IIS 7上的网络服务
如何处理此问题?您需要向该文件夹中的Aspnet用户授予写入权限 见此:
致以最诚挚的问候。在C:drive下写入变量目录不是一个好主意。我建议您不要授予在C下写入的权限,而是写入web应用程序目录下的目录,您可以通过
Server.MapPath(“~”
获得该目录。请确保您对应用程序池用户帐户的应用程序目录下的任何文件夹都具有写访问权限,这样您会更安全。您现在所做的完全不推荐,但如果您只是想这样做,请在您的C驱动器上授予写访问权网络服务
。这是我不想做的,先生。因为无论这个网站在哪里运行,它都会在该comp上进行推断。需要授予权限。在这种情况下,您不应该在“C:\”
驱动器中写入,而应该使用一个特定的文件夹,如“~\APP\u DATA”应用程序文件夹,用于asp.net中的此类操作。您必须在app\u data
文件夹上授予写入权限。很抱歉,先生,我需要保存在本地计算机上,而不是服务器上。服务器端代码无论如何都无法访问客户端的计算机。我建议您研究一下web应用程序是什么?在您编写下一个服务器端代码之前。我想将其保存在本地驱动器上。哦,您是说您想使用浏览器下载该文件?如果是,请在服务器上临时创建它,给它一个唯一的名称,在你的应用程序目录下的某个地方,正如我在回答中提到的。保存后,将用户重定向到该文件。例如,如果您将文件保存在file.writealText(Server.MapPath(“~”+“myfile.txt”)
通过输入页面加载代码将用户重定向到该文件:Response.redirect(“/myfile.txt”)
您好,我不需要将其保存在我的服务器上,但在本地计算机上用户正在使用您假装在客户端硬盘上写东西吗?:-O没有插件(applet、flash、ActiveX)是不可能的。您应该阅读更多关于什么是web应用程序以及什么不是web应用程序的信息。。