【发布时间】:2014-02-16 12:07:43
【问题描述】:
我最近开始使用实体框架(4.1 版)和 WCF。 我正在尝试制作一个 n 层 asp.net 应用程序(.Net Framework 4.0),其中数据层由内部使用实体框架的 wcf 服务组成。实体框架采用的方法是模型优先的。
在我的开发环境中,我在同一网站和同一应用程序池下的 IIS 7.5 上运行了 asp.net 应用程序和 wcf 服务(这不是很好,但它可以工作)。任何 wcf 服务第一次访问时,性能都很差,但在后续访问时,它还可以。第一次访问时性能不佳的原因在here 中进行了解释-例如与视图生成、查询准备等相关的开销,
完成开发后,我设置了一个包含 2 台虚拟机的测试环境 - 一台服务器 (IIS 7.5) 托管应用程序前端,另一台服务器 (IIS 7.5) 托管 wcf 服务 - 在不同的环境中运行机器,在不同的网站和不同的应用程序池下。
我期待相同的行为,即第一次访问服务很慢,随后的访问执行得更快,但是对服务的所有访问都运行得很慢。
问题不在于查询繁重,也不是网络问题。我已经执行了一个实体框架分析工具,显然每次调用 wcf 服务都会产生生成视图和准备查询的开销。查询的执行速度很快。
基本上我是想弄清楚为什么我会在不同的环境中注意到不同的行为。
根据我的阅读,每次创建 AppDomain 时,实体框架都会执行与初始开销相关的操作。但这是否意味着每次调用 WCF 服务都会创建一个新的 AppDomain?
【问题讨论】:
-
是否有机会在开发箱中调试构建并在测试环境中发布?
标签: c# asp.net performance wcf entity-framework