我用mysql DB创建了wcf datatservices。我快速从表中获取数据。但是当我尝试从视图中获取数据时,它会抛出超时异常。直接在db中尝试数据的速度非常快。
我尝试在web.config中设置以下内容。
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetHttpBinding" maxBufferPoolSize="2147483647" closeTimeout="00:01:00"
openTimeout="00:01:00" maxConnections="10"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
maxBufferSize="524288" maxReceivedMessageSize="2147483647" />
</netTcpBinding>
</bindings>
<services>
<service name="MyService">
<endpoint address="http://localhost:59825" binding="netTcpBinding"
bindingConfiguration="NetHttpBinding" name="HttpBinding" />
</service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
仍然超时异常。
的 EDIT1: 的
当我尝试使用表格时,数据正在增加。我从同一个表创建了一个视图select *。现在也是抛出超时异常。
请帮忙。
谢谢, 萨里萨。
答案 0 :(得分:2)
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="longTimeoutBinding"
receiveTimeout="00:10:00" sendTimeout="00:10:00">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
<services>
<service name ="longTimeoutService"
behaviorConfiguration="longTimeoutBehavior">
<endpoint address="net.tcp://localhost/longtimeout/"
binding="netTcpBinding" bindingConfiguration="longTimeoutBinding">
</endpoint>
</service>
....
修改强>
如果您没有收到,请访问此链接: Explaination of different timeout types
答案 1 :(得分:1)
答案 2 :(得分:0)
我想这与WCF配置无关。您能否检查数据库中视图的权限,并确保他具有与表中相同的权限。
答案 3 :(得分:0)
由于该服务似乎适用于较小的数据集,因此可能是因为您正在使用视图,所以在数据库服务器上处理结果时它会空闲。在这种情况下,您需要设置inactivityTimeout
:
<netTcpBinding>
<binding name="NetHttpBinding"
maxBufferPoolSize="2147483647"
closeTimeout="00:01:00"
openTimeout="00:01:00"
maxConnections="10"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
maxBufferSize="524288"
maxReceivedMessageSize="2147483647">
<reliableSession ordered="true"
inactivityTimeout="00:10:00"
enabled="true" />
</binding>
</netTcpBinding>