WCF Http转移很慢?

时间:2015-02-10 11:09:58

标签: c# wpf wcf soa

我有一个WCF服务,Entity Framework 6自我托管在一个简单的Winforms应用程序中。我有一个WPF客户端应用程序,它通过basicHttpbinding挂钩到这个服务。启动时,客户端应用程序从大表中请求SELECT *。我需要完整的数据集,但是跨越http的传输非常慢。我在服务器上运行了一个跟踪,db很快就处理了查询,但是文本返回客户端的时间太长了。如果我SELECT TOP 200客户端应用程序非常快,那么我知道它的数据量减慢了一切。这是我的客户端配置,它是镜像服务器端:

   <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IIsesService" maxBufferSize="2147483647"
             maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="false"/>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:8080/" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IIsesService" contract="ServiceReference.IIsesService"
            name="BasicHttpBinding_IIsesService" />
    </client>

我一直在四处阅读,但对如何解决这个问题感到困惑。遗憾的是,由于最终用户需要dataGrid中的所有结果,因此我无法对结果进行分页。我最好尝试编写自定义绑定以允许压缩,还是应该定义Mtom或二进制传输?我可以在Winforms中自托管时切换到Net TCP绑定吗?

0 个答案:

没有答案