通过 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 时,我有以下文件夹:approot、logs、 www_root,在 www_root 里面,我有我所有的 css、js 和 index.html.
尽管如此,当我重新加载我的网页时,它仍然给我 403 - Forbidden: Access is denied..
我该如何解决这个问题?我做错了什么?
最后,问题是因为我的托管服务器有一个名为 www_root 的文件夹,但是我的 ASP.NET 应用程序自动创建了文件夹 wwwroot.
我最后做的是创建一个脚本,它循环遍历所有文件并将 wwwroot 替换为 www_root .
问题已经解决了。
我正在尝试将我的测试网站部署到 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 时,我有以下文件夹:approot、logs、 www_root,在 www_root 里面,我有我所有的 css、js 和 index.html.
尽管如此,当我重新加载我的网页时,它仍然给我 403 - Forbidden: Access is denied..
我该如何解决这个问题?我做错了什么?
最后,问题是因为我的托管服务器有一个名为 www_root 的文件夹,但是我的 ASP.NET 应用程序自动创建了文件夹 wwwroot.
我最后做的是创建一个脚本,它循环遍历所有文件并将 wwwroot 替换为 www_root .
问题已经解决了。