如何部署具有多个项目的单个解决方案?
How to deploy a single solution with multiple projects?
我使用 WebAPI 和 AngularJS 开发了一个解耦良好的网站,如下所示:
SOLUTION
|—— WEB.API Project
|—— Website pages Project
'—— Other projects related to functionalities
这个设置是在我自己的电脑上。
现在我想部署到我的 Web 服务器(iis 7.5,私有,已安装 WebDeploy)。可以将两个项目部署在一个网站上吗? (其他项目是 class 个库,所以没有麻烦)
据我所知,我必须将 WebAPI 部分部署到一个网站,并将 UI 部分部署到另一个网站。我可以将它们放在一个网站上吗?
您可以将 Web API 项目放在主网站下的虚拟目录中。这就是我们在当前项目中实际做的事情。
可以,但是当文件冲突时你应该担心。例如,如果两个项目都有一个 web.config
,这可能会破坏其中一个。
如果没有,应该可以,但我不会立即推荐它。我会将它们拆分到单独的虚拟目录中,这样您就可以轻松地维护这两个单独的项目。
我有一个几乎相同的项目设置。我个人选择了 2 个单独的应用程序,我有一个带负载平衡器的多服务器设置 - 如果我有一个服务器或预期流量较低,选择可能会有所不同。
这样的好处是:
我预计我的 WebAPI 比网页有更多的流量,因为移动客户端也使用 WebAPI 以及前端网页。因为 API 在它自己的网站上,它有自己的应用程序池——这意味着每个应用程序都有自己的资源池(应用程序可以增长以使用更多内存并且 CPU 更好),而不是像共享他们将在虚拟目录中。
缺点:
因为有两个单独的应用程序池,所以我将一个绑定到端口 80,另一个绑定到端口 8080。因为我有一个大型服务器场来部署它,所以我已经在网络服务器前面有一个负载平衡器 - 因此URL 漂亮(即从 URL 中删除端口 8080)我添加了一个负载均衡器配置以允许流量进入端口 80 上给定的 url 并重定向到端口 8080在内部网络服务器上。如果您不介意 URL 中的端口,这不是真正的问题。
您还可以使用 OWIN自托管 Web API,这样您就不需要在 IIS 等中设置项目然后你可以让多个客户与同一个 API.
交谈
有一个更高级的教程here
。
我使用 WebAPI 和 AngularJS 开发了一个解耦良好的网站,如下所示:
SOLUTION
|—— WEB.API Project
|—— Website pages Project
'—— Other projects related to functionalities
这个设置是在我自己的电脑上。
现在我想部署到我的 Web 服务器(iis 7.5,私有,已安装 WebDeploy)。可以将两个项目部署在一个网站上吗? (其他项目是 class 个库,所以没有麻烦)
据我所知,我必须将 WebAPI 部分部署到一个网站,并将 UI 部分部署到另一个网站。我可以将它们放在一个网站上吗?
您可以将 Web API 项目放在主网站下的虚拟目录中。这就是我们在当前项目中实际做的事情。
可以,但是当文件冲突时你应该担心。例如,如果两个项目都有一个 web.config
,这可能会破坏其中一个。
如果没有,应该可以,但我不会立即推荐它。我会将它们拆分到单独的虚拟目录中,这样您就可以轻松地维护这两个单独的项目。
我有一个几乎相同的项目设置。我个人选择了 2 个单独的应用程序,我有一个带负载平衡器的多服务器设置 - 如果我有一个服务器或预期流量较低,选择可能会有所不同。
这样的好处是: 我预计我的 WebAPI 比网页有更多的流量,因为移动客户端也使用 WebAPI 以及前端网页。因为 API 在它自己的网站上,它有自己的应用程序池——这意味着每个应用程序都有自己的资源池(应用程序可以增长以使用更多内存并且 CPU 更好),而不是像共享他们将在虚拟目录中。
缺点: 因为有两个单独的应用程序池,所以我将一个绑定到端口 80,另一个绑定到端口 8080。因为我有一个大型服务器场来部署它,所以我已经在网络服务器前面有一个负载平衡器 - 因此URL 漂亮(即从 URL 中删除端口 8080)我添加了一个负载均衡器配置以允许流量进入端口 80 上给定的 url 并重定向到端口 8080在内部网络服务器上。如果您不介意 URL 中的端口,这不是真正的问题。
您还可以使用 OWIN自托管 Web API,这样您就不需要在 IIS 等中设置项目然后你可以让多个客户与同一个 API.
交谈有一个更高级的教程here
。