我使用WebAPI和AngularJS开发了一个分离良好的网站,如下所示:
Runtime rt = Runtime.getRuntime();
String[] commands = {"emulator", "-avd", "jenkins",
"-scale", "96dpi", "-dpi-device", "100"};
Process proc = rt.exec(commands);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(proc.getErrorStream()));
// read the output from the command
System.out.println("Here is the standard output of the command:\n");
String s = null;
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
// read any errors from the attempted command
System.out.println("Here is the standard error of the command (if any):\n");
while ((s = stdError.readLine()) != null) {
System.out.println(s);
}
此设置在我自己的计算机上。
现在我想要部署到我的Web服务器(iis 7.5,私有,安装了WebDeploy)。可以在一个网站上部署这两个项目吗? (其他项目是类库,所以没有麻烦)
据我所知,我必须将WebAPI部分部署到网站,将UI部分部署到另一个网站。我可以把它们放在一个网站上吗?
答案 0 :(得分:2)
你可以,但是当文件发生冲突时你应该担心。如果两个项目都有web.config
,那么这可能会破坏其中任何一个。
如果没有,它应该是可能的,但我不会立即推荐它。我会将它们分开放在单独的虚拟目录中,这样您就可以轻松地维护这两个独立的项目。
答案 1 :(得分:1)
您可以将Web API项目放在主网站下的虚拟目录中。这就是我们在当前项目中实际做的事情。
答案 2 :(得分:1)
我有一个几乎相同的项目设置。我个人选择了2个独立的应用程序,我有一个带有负载均衡器的多服务器设置 - 如果我有一台服务器或者预期的流量很少,那么选择可能会有所不同。
这提供了优势: 我预计我的WebAPI会比网页拥有更多的流量,因为移动客户端也会使用WebAPI以及前端网页。因为API在自己的网站中,所以它有自己的应用程序池 - 这意味着每个应用程序都有自己的资源池(应用程序可以增长以使用更多的内存和更好的CPU),而不是像在虚拟目录中那样共享。
<强>缺点:强> 因为有两个独立的应用程序池,我有一个绑定到端口80,另一个绑定到端口8080.由于我有一个大型服务器场来推动它,我已经在Web服务器前面有一个负载均衡器 - 因此要制作URL漂亮(即从URL中删除端口8080)我添加了一个负载均衡器配置,允许流量进入端口80上的给定URL,并被重定向到内部Web服务器上的端口8080。如果您不介意网址中的端口,这不是一个真正的问题。
答案 3 :(得分:1)