关于部署WCF时出现超时问题的解决

          在我们项目的开发过程中,由于所有的业务都必须以WCF服务进行发布。而且我们的WCF服务是部署在Windows Service上的,在实际的环境中,我们共部署了2个Windows Service,一个Service上Host了大部分WCF Service,另一个Service上Host了一个有关搜索的WCF Service,但是发布上去后,发现在前台使用搜索服务时经常报出TimeOut的错误,刚开始以为是代码没有更新,经过多次的强制获取代码后,总会有一次服务是调用成功的。
在有一次对本地的代码进行检查后,发现代码是最新的,但是发布上去的服务还是出现“TimeOut”的错误信息,而且在本地进行测试时总是成功的。由于我们WCF服务是发布到Windows Service上的,在这种情况下是没有办法进行跟踪调试的,只能对代码进行分段跟踪,发现问题出现在第一次调用搜索的方法上。
为了确认问题到底是出在搜索方法上还是WCF上,我们做了一个测试代码,代码中很简单的只写了一句调用搜索方法的语句,发现问题依然存在。说明我们所写的调用搜索方法应该没有问题。又将WCF发布到Console上,测试时返回速度很快,没有出现“TimeOut”的问题。这说明应该是将WCF服务Host在Windows Service上时,出现了问题。通过比较Console和Windows Service的区别,认为Console程序是由登陆到本地的用户进行调用的,而我们所写的Windows Service是由Local System用户进行调用的,而Local System用户在默认的情况是系统System用户(在任务管理器中会看到很多由System启动的进程),不是当前登陆的用户,试着将服务的启动帐号修改为当前的登陆用户,问题解决。

        结论:在进行Windows Service部署时,一定要注意是否有用户权限的要求,如果有,一定要以相关的用户来启动服务,否则在调用Service中的方法时,可能就会出现权限不足或者超时的相关问题。 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值