如何使用 Web Deploy 将 .NET 应用程序发布到服务器上的特定文件夹(子目录)?

How do you publish an .NET app using Web Deploy to a specific folder on the server (subdirectory)?

我目前有一个网站和几个 Web 应用程序是别人交给我的。 Web 应用程序是网站的子目录(因此最终的 URL 将是 www.mywebsite.com/app1)。我们刚刚在我们的新服务器上建立了新网站和 运行,虽然子目录在那里,但其中的应用程序不起作用,所以我需要将应用程序重新发布到这些子目录(进行了一些编辑)。但是,当我尝试发布时,所有文件夹和文件都发布在根目录下,而不是它们所属的子目录下(我收到内部服务器错误 500.19,因为它不喜欢应用程序现在的 web.config 文件阅读 - 另一个问题)。所以,我有两个问题,我在 Visual Studio 2019 年的 .NET Framework 4.8 应用程序上使用 Web Deploy 方法:

  1. 如何确保在发布时它找到了要发布到的正确文件夹?

  2. 我知道我需要将 IIS 管理器中的文件夹“转换为应用程序”。我是在将应用程序发布到该文件夹​​之前还是之后执行此操作?

目前,我的根目录是这样的,这是我发布后需要的结果。 FocalAreas、Inventory 和 NatiVeg 都是独立的 .NET 应用程序,具有自己的 Global.asax 文件、web.config 文件、packages.config 文件等

我是否需要在发布配置文件中设置一些内容以指向正确的发布文件夹?我没有看到太多我可以在那里为网络部署配置的东西。我查看了一堆 Whosebug 问题和 youtube 视频,但找不到任何关于通过 Web 部署在子目录中发布应用程序的 basic 工作流程的内容。在他们已经发布到他们的子文件夹之后,他们中的大多数人正在与 IIS 管理器方面交谈。在阅读各种帖子时,我确实看到也有“添加虚拟目录”;这是我在转换为应用程序之前需要做的事情吗? TIA.

事实证明这是一个非常简单的修复:

假设我有一个名为 DogsAreAwesome 的站点和一个我想包含我的名为 Doberman 的应用程序的文件夹。

  1. 在 IIS 管理器中,将要发布到的顶级站点 (DogsAreAwesome) 下的 Doberman 文件夹转换为应用程序。右键单击 Doberman 文件夹 > 转换为应用程序。

  2. 在 visual studio 中设置您的发布配置文件以指向您刚刚设置的新 Doberman 应用程序。这是我缺少的部分。在连接对话框中显示“网站名称”的地方,不仅要输入顶级网站名称 (DogsAreAwesome),还要输入您在步骤 1 中转换为应用程序的文件夹 (Doberman):DogsAreAwesome/Doberman

现在当您使用 web 部署发布时,它应该将您的应用程序文件发布到那个 Doberman 文件夹(现在是一个应用程序),而不是整个 DogsAreAwesome 网站。