首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用asp.net在服务器端位置(C盘或D盘)写入文件吗?

不能使用asp.net在服务器端位置(C盘或D盘)写入文件吗?
EN

Stack Overflow用户
提问于 2012-06-14 18:50:44
回答 4查看 8.9K关注 0票数 1

我正在为我的web应用程序使用ASP.NET。我可以使用这个方法Server.MapPath()在服务器路径中写一个文本文件。但我也想在不同的位置创建一个文本文件,比如C:\D:\。我使用的是IIS 5.1版。

这是我在C:\驱动器中写入文件的代码。

代码语言:javascript
复制
    string text="Welcome";
    StreamWriter sw = new StreamWriter("C:\\sample.txt", true);
    sw.WriteLine(text);
    sw.Close();

当我运行应用程序时,它抛出一个运行时异常

代码语言:javascript
复制
UnauthorizedAccessException. Access to Path C:\sample.txt is denied.

请指导我如何在C:\驱动器中编写文本文件...

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-14 18:53:47

很明显,您需要权限才能在磁盘上的任何位置创建/写入/删除等文件。

这里的提示是,您的asp.net应用程序在一个池下运行,并且该池在特定用户下运行-该用户必须具有正确的权限。

更新

在一个asp.net页面上,有两种类型的用户一起“运行”。其中一个问题与IIS的权限有关,这就是KBoek提到的问题。例如,用户从IIS请求一个页面,而IIS使用用户A查看是否可以读取此文件并将其发送回web -或具有运行权限。

第二种类型的用户是池。从IIS有权运行池的那一刻起,就使用池用户来运行它。因此,如果要通过池读取文件,则池必须具有读取权限,而不是iis。

为什么这里有两种用户。因为一个代表看到数据的用户,另一个代表我们所做的编程。

例如,如果我们有一个自动化工具,可以删除一组文件,那么我们不能让远程客户端直接访问这个文件,如果他喜欢,也可以删除它-但只有我们必须有这个权限才能只在编程时执行。因此,我们的asp.net程序与连接和查看页面的用户具有不同的权限,因此这里有两种用户。

票数 3
EN

Stack Overflow用户

发布于 2012-06-14 18:53:17

服务器进程在特定用户(取决于您的IIS版本)下运行,该用户必须对您要保存文件的文件夹具有写入权限。告诉我您的IIS版本,然后给我一分钟,我将为您查找用户名。

票数 2
EN

Stack Overflow用户

发布于 2012-06-14 18:54:29

要写入某个位置,web服务器用户必须具有对该位置的写入访问权限。您必须设置此文件的文件夹权限才能工作。确切的用户取决于您的IIS版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11031524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档