您可以使用WebDeploy - 它会比您手动完成更快地完成所有操作。它仍然会停止应用程序然后交换文件,然后再次启动应用程序,但在大多数情况下,当我这样做时,没有人注意到(当然不是繁忙的服务)
在进行更改之前,您可以使用IIS中的DNS更改或简单重定向来创建相同的应用程序并将用户重定向到此应用程序。
你提到内部用户建议该应用程序仅在内部使用?如果是这样,您可以强制您的域/网络上的DNS更改为新的应用程序,他们永远不会知道差异。在此期间,对您的“实时”应用进行更改,然后再次进行反向DNS更改。
如果失败,您可以随时执行更改。每个应用程序都需要一个维护窗口。
实现这一目标的唯一机会(我认为)如下:
您将所有逻辑(将更新)保存在一个单独的库中,该库是动态加载的(并且已卸载[关键字:单独的AppDomain] !!)。因此,对于(坏)示例,您可以在每次调用方法时重新加载此程序集。这样,cou可以在不必停止服务的情况下即时取代这个dll。
但这也有一些缺点:例如,这会降低性能。此外,您必须实施自己的安全检查(没有任何恶意黑客,黑客或任何可以用包含危险代码的库替换您的库。
不幸的是,这是我所知道的唯一选择。我希望这可以帮助你一点点。