【发布时间】:2014-07-16 09:38:51
【问题描述】:
我有一个使用 Visual Studio 2010 用 C# .NET 3.5 编写的 Web 应用程序,它使用由 Websphere for z/OS 公开的 Web 服务。 Web 应用程序托管在 Windows Server 2008 64 位/IIS 7 上。对 WS 的第一次调用需要 155000 毫秒才能执行,但服务响应时间不到一秒(在服务器上验证)。随后对 WS 的调用大约需要 45 毫秒。在长时间运行期间,worker进程消耗所有cpu并分配超过2Gb的内存。当它响应时,分配的内存下降到 250 Mb,随后的调用需要大约 45 毫秒。这种行为不会发生在我的工作站(Windows 7 64 位)和带有 Windows Server 2003 32 位和 IIS 6 的服务器上。我还尝试生成没有效果的序列化器/反序列化器。有什么想法吗?
【问题讨论】:
-
仪表。您首先必须了解发生了什么......
-
我从 JAVA(和 C# 的行为可能类似)知道,当服务第一次运行时,必须生成实际的类,这意味着程序集已构建。这可能需要一些时间。因此,只要它不影响您在生产期间的响应时间,我就不会关心它。
-
对我来说这是个问题。一段时间后问题再次出现,应用程序没有“受到刺激”,可能是在会话到期之后(我在 30 分钟后尝试过)。似乎垃圾收集器丢弃了一些东西,asp.net 必须重建这个东西。
-
今天我将与微软工程师会面,尝试解决这个问题。但是,我不明白为什么在装有 Windows Server 2003/IIS6 的机器上不会出现同样的问题。我相信一切都归功于 Windows Server 2008/IIS7。
标签: c# asp.net .net web-services iis