我有一个应用程序,它使用Silverlight 3.0编写。它使用RIA服务在客户端和服务器之间进行通信。
我的问题在网络上似乎没有得到很好的回答。客户端使用RIA服务与服务器通信,该服务在幕后使用WCF。如果通信时间超过60秒,则会出现以下错误消息:
“查询'ApplyUpgrade'的加载操作失败。到'http://localhost:52403/ClientBin/DatabaseUpgradeTool-Web-UpgradePackageDomainService.svc/binary'的HTTP请求已超过分配的超时时间。此操作所分配的时间可能是更长时间的一部分。”
我的服务器正在执行数据库升级,因此它需要花费比60秒更长的时间。可能是两倍或三倍。
我在web.config中尝试了以下设置:
<services>
<service name="DatabaseUpgradeTool.Web.UpgradePackageDomainService">
<endpoint address="" binding="wsHttpBinding" contract="DatabaseUpgradeTool.Web.UpgradePackageDomainService"></endpoint>
<endpoint address="/soap" binding="basicHttpBinding" contract="DatabaseUpgradeTool.Web.UpgradePackageDomainService"></endpoint>
<endpoint address="/binary" binding="customBinding" bindingConfiguration="BinaryHttpBinding" contract="DatabaseUpgradeTool.Web.UpgradePackageDomainService"></endpoint>
</service>
</services>
<bindings>
<customBinding>
<binding name="BinaryHttpBinding"
receiveTimeout="00:00:10"
sendTimeout="00:00:10"
openTimeout="00:00:10"
closeTimeout="00:00:10">
<binaryMessageEncoding />
<httpTransport keepAliveEnabled="true"/>
</binding>
</customBinding>
</bindings>
仍然没有成功。你有任何想法,关于我所尝试的方法有什么问题吗?我期望它在10秒内超时,而不是60秒。
谢谢。