我的WCF服务在Windows 7 Enterprise计算机上运行正常,但在Windows Server 2003上托管时失败(相同代码)

时间:2010-08-03 22:01:55

标签: wcf

我们一直在使用Windows 7企业版机器进行开发,我们有7个wcf服务....所有这些服务在开发机器上运行良好...当我们在Windows Server 2003和IIS 6中托管相同的服务时,我们正面临一些问题......其中一项服务是抛出“现有连接被远程主机强行关闭”错误......底层连接在服务调用中被关闭....我已打开使用log4net进行日志记录并且我已启用跟踪...在跟踪日志中我发现它几乎完成了所有步骤并在执行步骤结束时停止...所以我将log4net调试语句放在代码中它看起来像代码执行正常,从数据库中检索值很好,但它在返回数据时关闭连接。因此,在返回数据的那一刻,一些异常正在关闭连接...而且我无法弄清楚为什么或导致错误的原因......并且相同的代码在Windows 7企业版机器中正常工作...所以我不确定是在寻找代码问题,还是IIS 6.0需要的一些特殊设置......你们有什么想法可能会出现问题...感谢您的帮助。

还有另一项服务显示错误“请求的服务,'XXXXXXXXXXXXXXXXX'无法激活”...频繁调用,如立即调用同一服务似乎导致此错误..有没有办法可以可以避免,因为有些服务似乎在Windows Server 2003-IIS 6中出现这种行为,它们在Windows 7机器上运行得很好吗?

1 个答案:

答案 0 :(得分:1)

是的我启用了MessageLogging并发现了第一个错误....它无法序列化原因 - 响应被分配了请求中的对象。所以在Windows 7中允许它并使引用保持活动状态,但Windows Server 2003会丢弃所有请求对象,因此在响应序列化时,某些对象引用在Windows 2003中不再有效,因此会关闭连接。所以这解决了第一个问题。所以我只是在服务上创建了一个新对象并复制了值,它开始工作。