通过 FTP 将 ASP.NET 网站部署到 Windows 服务器

Deployment of the ASP.NET website to Windows Server via FTP

我正在尝试将我的测试网站部署到 ftp 服务器,但我遇到了很多困难(因为这是我第一次这样做)。

ftp 的服务器文件夹设置如下所示:

有一个名为www_root的主文件夹,其中包含以下两个文件夹app_data数据

这是来自 TotalCommander 的打印屏幕:

支持人员告诉我,我需要将所有数据复制到 www_root 文件夹中。

一旦我通过 Visual Studio 2015 将我的 ASP.NET 5 MVC 应用程序发布到文件系统,我可以看到三个文件夹:

我的基地 index.html,连同 css & javascript 位于 wwwroot 文件夹。这是 wwwroot 文件夹的内部结构:

当我将 wwwroot 文件夹的内容复制到 www_root 文件夹(在 FTP 下)并且我 exclude web.config 文件,然后我的基本网页加载没有问题(但没有服务器端逻辑......它只是一个带有一些 HTML & CSS代码)。

现在,当我将 web.config 添加到该文件夹​​时出现问题,然后当我尝试打开我的网站时突然收到 错误 500。我认为问题是由 web.config 包含以下设置这一事实引起的:

<configuration>
  <system.webServer>
    <handlers>
      <add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
    </handlers>
    <httpPlatform processPath="..\approot\web.cmd" arguments="" stdoutLogEnabled="false" stdoutLogFile="..\logs\stdout.log" startupTimeLimit="3600"></httpPlatform>
  </system.webServer>
</configuration>

在这里我可以看到我们的目标是 \approot\web.cmd 文件。因此,我所做的是,我将 approot & logs 文件夹(由 Visual Studio 生成)复制到我 FTP。

所以最后当我登录 FTP 时,我有以下文件夹:approotlogswww_root,在 www_root 里面,我有我所有的 css、js 和 index.html.

尽管如此,当我重新加载我的网页时,它仍然给我 403 - Forbidden: Access is denied..

我该如何解决这个问题?我做错了什么?

最后,问题是因为我的托管服务器有一个名为 www_root 的文件夹,但是我的 ASP.NET 应用程序自动创建了文件夹 wwwroot.

我最后做的是创建一个脚本,它循环遍历所有文件并将 wwwroot 替换为 www_root .

问题已经解决了。