Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ASP.NET MVC 3站点部署到尚未运行web服务器的多个客户端的最简单方法是什么?_Asp.net_Asp.net Mvc - Fatal编程技术网

将ASP.NET MVC 3站点部署到尚未运行web服务器的多个客户端的最简单方法是什么?

将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服务器的额外开销推到客户机上,因此最好是给他们一个完全独立的包,并在应用程序旁边运行第二个服务。

我们的服务器应用程序作为服务运行,并具有一个基于ASP.NET MVC3 web的前端,该前端连接到我们的应用程序以进行监视和配置。我们的应用程序通常安装在由IT部门维护的客户机服务器上,因此我试图找出打包和部署应用程序ASP.NET部分的最佳方法,使其尽可能轻松地在其服务器上运行

运行ASP.NET MVC3站点的官方方式似乎是将其部署到IIS服务器安装。由于我们希望避免将提供、安装和维护完整web服务器的额外开销推到客户机上,因此最好是给他们一个完全独立的包,并在应用程序旁边运行第二个服务。web前端只供内部使用,因此扩展不太重要

有什么想法吗?

最简单的方法就是自己主持。我经常为我的团队做出技术决策,而且我100%倾向于选择付钱让您为我主持一个实例


最终,另一种选择是客户端有一个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, &currentWindowProcessId );
            if( currentWindowProcessId == m_processId )
            {
                PostMessage( currentWindow, WM_QUIT, NULL, NULL );
                break;
            }
        }

我们还没有将其投入生产,但到目前为止,它在开发过程中工作得很好。

对于我们确实主持的情况,我们将这样做,但这不是所有情况下都可以选择的。