【问题标题】:How to improve performance using WCF Service如何使用 WCF 服务提高性能
【发布时间】:2011-04-18 04:15:15
【问题描述】:

我的场景是:WebApp -> WCF 服务 -> Oracle DB

我在客户端使用自定义分页和绑定 gridview,以避免回发我在 WebApp 中使用 webmethod,该方法调用 WCF 方法,该方法又调用 Oracle 中的存储过程。此 SP 返回大约 1 MB 大小的 DataTable。因此,每次当我在 gridview 上执行任何操作时,它都会从服务中获取 1MB 的数据,这会降低应用程序的性能,因为我只对 100 条记录(分页)感兴趣。我无法修改 SP 有什么其他方法可以提高性能?

【问题讨论】:

    标签: .net asp.net wcf performance


    【解决方案1】:

    当然,最好的解决方案是在页面中查询数据,但是由于您无法触摸存储过程,因此您无法使用该选项。因此,下一个最好的方法是查询一次数据并将结果缓存在 ASP.NET 会话中。这样,您只需访问数据库一次,后续调用将从查询结果的内存表示中获取。

    我找到了this blog post,很好地涵盖了将 ASP.NET 会话与 WCF 结合使用。

    【讨论】:

    • 如果 WCF 服务没有托管在 IIS/ASP.NET 中怎么办?
    • 当你说你有一个调用 WCF 服务的 web 方法时,这是否意味着一个 2 层服务层,前面是 ASMX,中间层 WCF 使用 ServiceHost 托管?如果您正在这样做,我会在 ASMX 层而不是 WCF 层中进行缓存,因为您可以从那里访问 ASP.NET 会话。
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多