【问题标题】:Auto publishing WCF services to IIS7 from a TeamCity build server从 TeamCity 构建服务器自动将 WCF 服务发布到 IIS7
【发布时间】:2011-11-08 06:34:17
【问题描述】:
我有一堆 C# VS2010 项目在 TeamCity 构建服务器上自动编译。
构建服务器编译项目,然后对输出运行自动单元测试。
问题是,部分测试正在尝试与本地服务器上的 WCF 服务进行通信。
测试失败是因为 BuildServer 只构建项目,并没有将输出服务发布到 IIS7(与 TeamCity 一起运行)。
有没有一种简单的方法可以在每次代码编译完成时自动告诉 TeamCity(可能通过 MSBuild.exe)发布我的 *.svc 文件?
谢谢 [=
【问题讨论】:
标签:
wcf
iis-7
msbuild
teamcity
【解决方案1】:
最简单的做法是将 IIS7 指向 TeamCity 结帐目录——它将在那里构建,这样您就可以在不模拟部署的情况下针对服务运行测试。您可能还想创建 2 个阶段的测试 - 一个在“部署”之前运行的传统单元测试,以及在第一组成功并发生“部署”之后运行的第二组。
在 TeamCity 之外部署绝对可以工作,但具体取决于您的网络和应用程序拓扑。
【解决方案2】:
要部署 Web 服务,您可以使用 Web Deploy 在 IIS 中打包和安装您的服务。然而,真正的问题似乎是你的测试对你的服务的依赖。您应该抽象您的服务接口并在测试中使用模拟框架和您最喜欢的 DI 容器,这样服务就不需要启动了。
HTH。