0

我有一个 VPS(云服务器),我安装了 Visual Studio、IIS、SQL……所有这些好东西。我有时也在这个 VPS 上做开发。

这个网站基本上是一个简单的文件管理器。加载时,它会列出 App_Data 文件夹中的文件和文件夹。这就是说,我使用 App_Data 作为文件管理器的“root/home/topmost-directory”。

我将它们放在 App_Data 文件夹中的原因是因为我不希望用户像这样:www.mywebsite.com/ROOT/[获取文件列表]。相反,如果他们尝试访问:www.mywebsite.com/App_Data/[tries to get list],IIS 会以一个不错的错误阻止他们(因为 IIS 阻止访问该文件夹)。

因此,网站通过后面的代码访问 App_Data 文件夹中的结构。这就是网站导航的方式。它可以下载、上传、移动文件、重命名……删除……App_Data 文件夹中的所有内容。

唯一的问题是,这仅在我在 Visual Studio 中运行网站并运行测试、测试网站、调试等时才有效。当我(通过 Visual Studio 中的文件系统)将网站发布到目录时:“C: /inetpub/Sites/[WebsiteFolder]”,并导航到网站的 URL,该网站不再工作。它加载,但它不再获取 App_Data 文件夹中的文件结构,它无法创建新文件夹,无法重命名它们......

当我通过 FTP 将它上传到另一个托管在另一个托管公司(即共享托管)的其他网站空间时,这个网站运行良好。

所以我猜(我最好的猜测)我的 VPS 上的 IIS 不允许这种访问。而且我一直在尝试在 IIS 上找到可以/可能允许这样做的设置。

我启用了目录浏览,但这可能是我唯一能想到的,除了确保目录可访问(可读/可写)。

你可能知道我还能尝试什么吗?

4

1 回答 1

0

哦,好吧,这是一个非常愚蠢的错误——但这就是我们学习的方式!

App_Data 文件夹中没有任何其他文件或文件夹。众所周知,ASP.NET 不会发布空目录。这意味着一旦我发布了网站,那些空文件夹就永远不存在了。

目前我知道有 3 种方法可以解决这个问题:

  1. 如果您的解决方案有发布配置文件(以便您可以发布站点),您可以右键单击 Visual Studio 中的空文件夹,然后说 Publish [FolderName] 例如:在此处输入图像描述
  2. 您可以在该目录中创建一个空文件,然后再次发布您的整个网站。因为该文件夹不再是空的,所以它与网站的其余部分一起发布。
  3. 只需在您的托管空间上手动创建文件夹。

感谢大家的投入!非常感激!

于 2016-02-27T06:55:19.857 回答