在不覆盖现有 IIS 的情况下使用 Web 部署

Using Web Deploy without overwriting existing IIS

我将使用 Web Deploy 将多个应用程序从一台 IIS 服务器移动到另一台 IIS 服务器。但是在导入过程中,我看到这条消息:

我在目标网络服务器上有现有网站需要保持原样。

有没有办法在不覆盖目标服务器的情况下导入?实际上,我希望合并两个 IIS 服务器。两者都有 Default Web Site 下的所有内容,但如有必要,可以更改。

我最终使用了这些命令

Export

%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml %windir%\system32\inetsrv\appcmd list apps /config /xml > c:\apps.xml

Import

%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml %windir%\system32\inetsrv\appcmd add apps /in < c:\apps.xml

必须非常小心以确保所有应用程序池设置都是正确的。任何无法导入的内容(通常是因为重复)都会停止导入其他所有内容。首先删除现有的应用程序池或重命名要导入的应用程序池可能是有意义的。

有一个选项可以只导入 sites 而不是 apps 但这不适用于此目的,因为你不能导入到 Default web site 除非你删除它首先。这意味着我所有现有的网站都将被删除。或者,您可以创建一个新的 web site,但它需要不同的 ID 号和端口。同样,不理想。