为什么 Server.MapPath("~") 在不同的控制器中给出不同的结果?

问题描述 投票:0回答:1

我有一个控制器,WorkingController.cs,其方法为 UploadDocument() 其中包含代码

var dir = Server.MapPath("~/Working");
Directory.CreateDirectory(dir);

在不同的区域,我有另一个控制器,NotWorkingController.cs,具有类似的方法 UploadDocument(),其中包含代码

var dir = Server.MathPath("~/NotWorking");
Directory.CreateDirectory(dir);

当代码在我的实时和测试站点上运行时,会在 C:\inetpub\wwwroot\Working 中创建“Working”文件夹。但是,NotWorking 文件夹是在 C:\inetpub\wwwroot\My_Application_Name\NotWorking

创建的

MVC 如何确定根文件夹在哪里?我如何使这一点保持一致?

当我发布项目时,C:\inetpub\wwwroot\My_Application_Name 中用户上传的所有文档都会被删除!

我查看了各种 AreaRegistraion.cs 和 web.config 文件 和 RouteConfig.cs 文件,但我找不到任何配置应用程序根目录的内容。

asp.net-mvc
1个回答
1
投票

您检查过 IIS 设置吗?

进入IIS,右键网站->基本设置,查看网站的物理路径。

我怀疑您的网站下可能有一个应用程序,请检查该应用程序的物理路径...这应该可以帮助您找出您的应用程序映射到的物理路径。

© www.soinside.com 2019 - 2024. All rights reserved.