将ASP.NET MVC 3站点部署到尚未运行web服务器的多个客户端的最简单方法是什么?
我们的服务器应用程序作为服务运行,并具有一个基于ASP.NET MVC3 web的前端,该前端连接到我们的应用程序以进行监视和配置。我们的应用程序通常安装在由IT部门维护的客户机服务器上,因此我试图找出打包和部署应用程序ASP.NET部分的最佳方法,使其尽可能轻松地在其服务器上运行 运行ASP.NET MVC3站点的官方方式似乎是将其部署到IIS服务器安装。由于我们希望避免将提供、安装和维护完整web服务器的额外开销推到客户机上,因此最好是给他们一个完全独立的包,并在应用程序旁边运行第二个服务。web前端只供内部使用,因此扩展不太重要 有什么想法吗?最简单的方法就是自己主持。我经常为我的团队做出技术决策,而且我100%倾向于选择付钱让您为我主持一个实例将ASP.NET MVC 3站点部署到尚未运行web服务器的多个客户端的最简单方法是什么?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我们的服务器应用程序作为服务运行,并具有一个基于ASP.NET MVC3 web的前端,该前端连接到我们的应用程序以进行监视和配置。我们的应用程序通常安装在由IT部门维护的客户机服务器上,因此我试图找出打包和部署应用程序ASP.NET部分的最佳方法,使其尽可能轻松地在其服务器上运行 运行ASP.NET MVC3站点的官方方式似乎是将其部署到IIS服务器安装。由于我们希望避免将提供、安装和维护完整web服务器的额外开销推到客户机上,因此最好是给他们一个完全独立的包,并在应用程序旁边运行第二个服务。
最终,另一种选择是客户端有一个web服务器。您不能只为他们设置它,因为IIS需要安全的管理和配置,并在客户端环境中工作。因为这里没有太多响应,所以我要回答我最后要做的事情,以防将来有人遇到此问题 我们最终使用了IIS Express。我们将随安装程序一起分发IIS Express安装程序(IIS Express许可证允许:)。安装后,我们使用CreateProcess直接运行iisexpress.exe,并将/path设置为我们的ASP.NET项目,因此整个过程完全由我们现有的服务控制(我们可以将输出路由到日志系统)。我们使用作业对象来确保在服务崩溃时终止IIS Express进程 我们执行以下操作以关闭IIS Express:
for( HWND currentWindow = GetTopWindow(NULL); currentWindow != NULL; currentWindow = GetWindow( currentWindow, GW_HWNDNEXT ) )
{
DWORD currentWindowProcessId;
GetWindowThreadProcessId( currentWindow, ¤tWindowProcessId );
if( currentWindowProcessId == m_processId )
{
PostMessage( currentWindow, WM_QUIT, NULL, NULL );
break;
}
}
我们还没有将其投入生产,但到目前为止,它在开发过程中工作得很好。对于我们确实主持的情况,我们将这样做,但这不是所有情况下都可以选择的。