部署WCF服务

时间:2011-04-06 04:05:13

标签: c# wcf iis

如果我部署WCF服务会中断服务吗?我正在部署到IIS,我的部署是使用Windows资源管理器手动复制dll,web.config,svc等。

所以我复制文件,之后会发生什么?应用程序池是否回收?是否需要重新编译(即减慢速度)?

服务在没有会话状态的情况下运行,因此如果应用程序池循环使用,只要请求不被中断,我就不在乎。

3 个答案:

答案 0 :(得分:3)

如果该服务已被使用且旧的dll已被加载,则需要在使用新dll之前回收应用程序池 - 直到那时旧的dll保留在内存中。

虽然应用程序池回收不会导致重新编译,但是服务的第一个调用者会在必要的dll加载到内存时遇到轻微的延迟。

您可以通过在回收后立即呼叫您的服务来轻松防止此首次呼叫延迟。这样,用户遇到延迟的唯一方法是,如果他们在您部署的同时进行服务呼叫(并且在第一次呼叫时击败您) - 但延迟将是最小的。

答案 1 :(得分:1)

根据我在ASP.Net上的经验,可以监视app虚拟目录的某些特定文件更改。我相信只要任何受监视的文件\目录发生更改,应用程序就会重新启动。从ASP.Net经验来看,更改web.config和bin目录下的文件会导致application reload \ restart。我认为WCF也应该这样。您需要进行POC验证。

答案 2 :(得分:-1)

不,它不应该但正确的部署服务的方法是在发布模式下构建它,更多细节我建议这篇文章: - http://blah.winsmarts.com/2008-4-Host_a_WCF_Service_in_IIS_7_-and-amp;_Windows_2008_-_The_right_way.aspx