2011-05-02 134 views
1

最近我们已经将我们的主要产品升级为ASP.NET 4.0项目(从2.0升级)。此项目是Web服务的主要流量来源,其他表单在此版本中未更改。网络服务已经运行了几年而没有问题。Web服务在一小时后死亡

继4.0环境中的释放,我们的主要产品我们的Web服务开始大约一个小时后死亡,并会做什么,但超时,直到我们重新启动工作进程。

我们更改了它,以便Web服务也在4.0框架中。然而这没有做什么。我们尝试过的其他可能的尝试也失败了,例如使其成为服务而不是Web引用,并更新我们的证书验证以使用适当/最新的框架技术。

最糟糕的部分是在事件查看器没有创建日志,所以我没有任何问题的线索。我们已经应用了每20分钟回收应用程序池的创可贴解决方案(重新编译需要一秒钟的时间,因为Web服务非常小),现在似乎仍然存在,但我们宁愿修复问题,而不愿依赖于此。 那么有没有人对我们的问题可能来自哪里有任何其他想法/建议?或者任何人遇到类似的事情

两个项目都存在于同一个Web场中,并且所有机器都使用IIS 6 32位。

谢谢!

编辑 - 一些更多的信息,该网站的服务有几个基本功能:

1 - 接受XML文档加载它们放入一个数据集,然后用发送的信息更新内部的DB - ,只是返回真

2 - 通过XML接收到一个请求为处理后的数据和查询DB为它建立XML响应,并sents出来

3 - 接收在步骤2中所请求的数据的确认被收到并从DB

删除它

4 - 获取更新数据库的功能,以便我们可以监视客户端系统上的某些应用程序。

+0

与建议使用Process Explorer的答案不同,我建议在Process Monitor停止工作时运行它。您可以限制它只是为了观察相关过程。 Process Monitor可能会允许您查看导致服务死机的原因。 Process Explorer可能只会让你看到它死亡。 – 2011-05-02 15:26:54

+0

我一直在滥用WS,似乎它没有清理任何内存或资源,初始内存大约25MB,目前为53MB。我把它从瞬间回调减慢到大约3-5秒,但是随后手柄的数量从1200增加到900,并且再次快速。 WS似乎永远不会自我清理,并导致问题。有没有什么我应该做的程序化,以便在请求结束后触发此事?或者有什么我应该找的? – John 2011-05-02 20:20:30

回答

0

首先,您是否可以在dev box上重现问题(使用一些负载测试平台来模拟生产负载)?

如果是这样,那么这听起来像是你的代码的问题。然后,您可以更进一步并在开发服务器上对代码进行分析以查明问题。

如果这是不是一种选择,我会火起来Process Explorer随着时间的推移看服务器资源。我不确定你的服务是干什么的,但是它听起来像是它可能正在旋转起来,然后不能自行清理。

如果您发布了一些示例代码,以便我们可以看到从.NET 2.0到4.0的变化会受到什么影响,这可能会有所帮助。

+0

如果我删除了我们已有的创可贴修复方法,则可以在我的开发箱内部重现问题。我们原来在访问服务时没有更改代码,现在我已经对我提到的一些更改进行了修改。事情是,它的工作正常,直到过程自杀,然后它只是死了。直到那时我可以尽可能多地滥用它。该服务基本上只是从网页获取用户输入并返回SENT作为确认它已成功传输。所以这是一个非常基本的打击。尽管如此,我会检查资源。 – John 2011-05-02 15:27:24

+0

@John - 然后我会使用开发服务器和配置文件/监视服务直到它死亡。如果不了解服务的功能,就很难提出更具体的建议。 – 2011-05-02 15:28:54

+0

该服务基本上只是从网页获取用户输入并返回SENT作为确认它已成功传输。所以这是一个非常基本的打击。 - 对不起,我之前编辑过,因为我不小心进入了:) – John 2011-05-02 15:36:22