c# - 如何在运行时以所有权限在 IIS 7 中运行的网站中创建文件夹?

标签 c# asp.net iis dotnetnuke

我的应用程序应该在执行期间创建一个文件夹结构,它将在其中创建、存储和处理运行时生成的文件。该系统已经在桌面应用程序中进行了测试并且运行良好。现在,我正尝试在 C# asp.net webforms DNN 项目中使用它,但它并不符合预期。

当我调试项目时,目录在以下位置创建,原因我不明白(但应用程序执行正常):

C:\Program Files\Common Files\microsoft shared\DevServer\10.0\

当我通过本地主机环境(IIS 7、.NET 4.0、集成管道模式)运行相同的应用程序时,抛出以下异常:

A critical error has occurred. Access to the path 'c:\windows\system32\inetsrv\Processing\' is denied.

“Processing”目录也未根据已验证的应用程序逻辑创建。

我希望在 IIS 中执行的应用程序的 bin 文件夹中创建此文件夹结构。我通过在应用程序的 bin 文件夹中根据要求创建虚拟目录结构,在所需位置手动创建了文件夹结构,但这也无济于事。

所以我的问题是:

  • 请有人说明当托管在 IIS 中时,网站创建的目录和文件应该如何保存以及保存在何处。
  • 我需要遵循哪些步骤来确保在 IIS 7 中执行的应用程序的 bin 文件夹中创建文件和目录并获得所有权限。
  • 为了实现这一点,我是否必须进行任何代码修改。

非常感谢任何指向我写作方向的链接和答案。

谢谢!

最佳答案

默认情况下,您的 Web 服务器(IIS 或本地开发服务器)将保存到其工作目录。如果要保存到特定路径,请使用 MapPath 获取与您的应用程序对应的物理路径(或 Server.MapPath )。例如:

string path = MapPath("~/bin");

您还需要确保运行 IIS 的帐户对您需要写入的目录具有读/写权限。这意味着进入您的服务器并修改文件夹的权限。要找到用户帐户,您必须转到应用程序池下的高级设置并检查为Identity 设置的内容。

关于c# - 如何在运行时以所有权限在 IIS 7 中运行的网站中创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939972/

相关文章:

c# - 如何让Crystal Report直接打印到打印机而不导出为PDF?

iis - ColdFusion - 预防 - 跨站点请求伪造 (CSRF)

Azure 项目中静态文件的 IIS 错误 500.19

c# - 如何检测程序何时空闲?

c# - devexpress 饼图显示值的百分比

c# - 在哪里放置 IoC 容器配置?

c# - JSon 返回一串 HTML 表格显示在 jQuery 数据表的 fnopen 中

c# - 动态创建的按钮单击事件未触发

java - 通过 HttpClient 进行 SPNEGO 身份验证

c# - Serial Port ReadLine vs ReadExisting 或如何从串口正确读取数据