我有一个包含多个集成测试项目和一个Web应用程序项目的解决方案。每个集成项目在运行测试时连接到Web应用程序。我希望每个测试项目都能使用自己的数据库连接访问该网站。我一直在尝试使用visual studio中内置的Web部署功能。但是,我无法弄清楚我需要添加到创建的部署包和/或测试项目的post build事件,以便在部署时声明网站的绑定端口。例如,我希望集成项目A创建并访问位于http://localhost:83和集成项目B的网站,以创建和访问位于http://localhost:82的网站。有人可以解释一下:
更新: 我想将同一站点部署到我的机器上的两个不同位置,以便我可以同时运行两组集成测试。
更新2: 我研究了Web部署工具,它允许您指定用于修改从命令行调用时部署的内容的参数。但是我发现文档非常混乱。 http://technet.microsoft.com/en-us/library/dd568968(WS.10).aspx
更新3: 我希望这些是两个不同的网站,每个网站都指向自己的数据库。如果可能的话,我想要一个可以使用msdeploy部署的软件包。然后将在每个集成测试项目的后期构建事件中调用它。我想从集成项目的后期构建脚本中指定连接字符串和部署位置。
答案 0 :(得分:0)
您可以尝试使用visual studio中包含的webdev.server。 VisualStudio在调试时使用它来启动Web服务器。通过这种方式,您可以在所需端口中启动Web服务器(如果当前未使用该端口)。 我制作了一个bat文件来改变一些选项。 检查一下。
:: bat文件的开头
cd C:\ Program Files \ Common Files \ microsoft shared \ DevServer \ 10.0 \ WebDev.WebServer40.exe / port:80 / path:“C:\ PATHTOYOURWEBPROJECT”/ vpath:“/ NAMEOFYOURWEBPROJECT”
:: bat文件结束
您可以访问:http://localhost:80
我使用的是webserver40,但是如果你没有net.4或vs2010,你可以尝试找到webserver [xx版本] .exe
我希望这会有所帮助,并为我破碎的英语感到抱歉。
答案 1 :(得分:0)
首先,你正以错误的方式接近这个。
>我希望每个测试项目都能访问该网站 自己的数据库连接。
谁在创建数据库连接?您的网站或测试项目?对于你的其余问题来说,我认为它是网站(否则,项目A和项目B无法共享开箱即用的连接)。
如果您的网站正在建立连接,除非您缓存或拥有静态连接,否则会在每个请求运行您的网站时建立新的连接在新的线程上。另一个更简单的替代方法是采用查询参数并基于此启动新连接。如果您将它从调用者中取出,您也可以将其用于更详细的日志记录。
Web部署项目用于部署到集成服务器,这意味着您无法通过http://localhost...
访问它们,而是访问服务器的完整FQDN。
最重要的是,http://localhost:82/myApp
和http://localhost:83/myApp
是两个不同的站点(除非您从其中一个站点重定向到另一个站点本身可能导致其他问题)运行相同的代码库。
话虽如此,您需要两次部署您的网站,然后您需要的只是更改项目A和B中的配置/设置条目,以指向不同的网站。
希望这是有道理的。
答案 2 :(得分:-1)
您可以定义虚拟主机配置 有关详细信息,请参阅本指南。
http://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch07.html