2

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

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

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

当我通过 localhost 环境(IIS 7、.NET 4.0、集成管道模式)运行相同的应用程序时,会引发以下异常:

发生严重错误。拒绝访问路径“c:\windows\system32\inetsrv\Processing\”。

“处理”目录也不是根据经过验证的应用程序逻辑创建的。

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

所以我的问题是:

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

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

谢谢!

4

1 回答 1

1

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

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

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

于 2012-08-13T19:40:59.917 回答