我对我的WCF服务的内存使用感到有点困惑。简要概述,我的wcf服务是一个odata提供者,它允许我的ipad应用程序与我们的sql server数据库对话。
问题是,当一个客户端(使用objective C odata库的ipad设备)调用一组简单的数据(比如从数据库中获取所有客户)时,w3wp进程的内存就会增加几mb,并且再也不会真正回落。事实上,客户端想要做的只是一次性调用(检索数据集、更新数据集、删除数据集),而一旦它完成了它的调用,它用来执行该动作的内存应该被释放。根本不是这样的?我猜想有一些缓存正在发生,或者可能调用实例没有被释放。
有没有人能把我引向正确的方向,这样w3wp就会变得精简,并在通话完成后清除掉记忆。
提前感谢
发布于 2012-03-27 21:18:25
您的数据库是否与web服务器驻留在同一台计算机上?如果您的索引没有正确应用,您最终将消耗大量资源。如果您使用的是MS SQL server,请检查服务器的最小内存设置。一旦达到最小内存限制,MS SQL Server可能不会将其释放,直到重新启动。你还应该看看你的绑定配置。如果您使用状态完整(会话)绑定,并且不关闭会话,则服务实例将在内存中停留10分钟(默认),等待来自同一代理对象的新客户端请求。
https://stackoverflow.com/questions/9882362
复制相似问题