1

我有一个包含多个集成测试项目和一个 Web 应用程序项目的解决方案。每个集成项目在运行测试时都连接到 Web 应用程序。我希望每个测试项目都能通过自己的数据库连接访问网站。我一直在尝试使用 Visual Studio 中内置的 Web 部署功能。但是,我一直无法弄清楚我需要添加什么到创建的部署包和/或测试项目的构建后事件中,以便在部署时声明网站的绑定端口。例如,我希望集成项目 A 创建和访问位于http://localhost:83的网站,并希望集成项目 B 创建和访问位于http://localhost:82的网站. 有人可以解释一下:

  1. 我需要做什么部署包吗?
  2. 在部署包时,我需要为我的集成项目的构建后事件添加什么,以便在构建项目时在正确的端口创建网站?

更新:我想将同一个站点部署到我机器上的两个不同位置,以便我可以同时运行两组集成测试。

更新 2:我研究了 web 部署工具,它允许您在从命令行调用它时指定修改部署内容的参数。但是我发现文档非常混乱。http://technet.microsoft.com/en-us/library/dd568968(WS.10).aspx

更新 3:我希望这些是两个不同的网站,每个都指向自己的数据库。如果可能的话,我想要一个可以使用 msdeploy 部署的包。然后将在每个集成测试项目的构建后事件中调用它。我想从集成项目的构建后脚本中指定连接字符串和部署位置。

4

3 回答 3

0

您可以尝试使用 Visual Studio 中包含的 webdev.server。VisualStudio 在调试时使用它来启动网络服务器。有了这个,您可以在所需端口中启动网络服务器(如果当前未使用该端口)。我制作了一个 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

我希望这会有所帮助,并为我的英语不好感到抱歉。

于 2011-07-25T18:28:08.223 回答
0

首先,您以错误的方式处理此问题。

> 我希望每个测试项目都能通过自己的数据库连接访问网站。

谁在创建数据库连接?您的网站或测试项目?为了使您的其余问题有意义,我认为它是网站(否则,项目 A 和项目 B 无法共享开箱即用的连接)。

如果您的网站正在建立连接,除非您正在缓存或具有静态连接,否则当每个请求在新线程上运行您的网站时都会建立新的连接。另一个更简单的选择是获取一个查询参数并基于它启动一个新连接。如果您从调用者那里播种它,您还可以将其用于更详细的日志记录。

Web 部署项目旨在部署到集成服务器,这意味着您只能通过http://localhost...服务器的完整 FQDN 访问它们。

最重要的是http://localhost:82/myApphttp://localhost:83/myApp两个不同的站点(除非您从其中一个重定向到另一个本身可能导致其他问题的站点)运行相同的代码库。

话虽如此,您随后需要部署您的网站两次,然后您只需更改项目 A 和 B 中的配置/设置条目以将它们指向不同的站点。

希望这是有道理的。

于 2011-07-27T14:29:33.723 回答
-1

您可以定义虚拟主机配置。
有关更多信息,请参阅本指南。

http://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch07.html

于 2011-06-26T10:16:29.880 回答