在SVC文件ServiceHost声明标记中指定Service类/程序集时,是否有人知道如何定位不同的程序集?我想根据调试版本和发布版本定义来定位不同的程序集名称。另一个方面是我使用Autofac和AutofacServiceHostFactory来处理我的服务类中的DI。
我尝试了几种预处理程序指令方法,但每种方法都会导致“指令'ServiceHost'只能指定一次”。这是我收到错误时的示例代码。
<% #if DEBUG %>
<%@ ServiceHost
Service="MyNamspace.TestService, MyNamspace_DEBUG"
Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf" %>
<% #else %>
<%@ ServiceHost
Service="MyNamspace.TestService, MyNamspace"
Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf" %>
<% #endif %>
我知道我可以通过为每个文件提供重复的SVC文件来解决这个问题,然后只根据我正在进行的构建部署相应的SVC文件,但我认为必须有一种更简单的方法。非常感谢任何/所有帮助。
我知道如果我没有使用IIS和SVC文件来托管我的服务,我可以处理这个问题,但是如果可能的话我想保持IIS托管。
更新1 在搜索更多内容时,我遇到了这篇文章,讨论了如何使用VirtualPathProvider动态生成svc输出。这可能适用于我想要的东西,我之前可能应该考虑过。我仍然觉得应该有一个更简单的方法来做到这一点,但似乎无法找到它。如果它确实在下面工作,我会发布我的工作方式。如果你有更好的方法,我会接受所有的想法。
http://social.msdn.microsoft.com/Forums/en/wcf/thread/350f2cb6-febd-4978-ae65-f79735d412db
答案 0 :(得分:2)
我建议使用configuration based activation(仅限WCF 4)并使用不同的配置模板进行调试和发布(或使用svc进行发布,使用config进行调试)。