我明白了:
接收到http://localhost:8732/Design_Time_Addresses/PersistencyService/Service1/的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。有关详细信息,请参阅服务器日志。
为什么我会这样?我认为这是因为该方法需要大约1分钟才能完成。如何禁用任何时间限制?
我在VS中运行一个在同一解决方案中使用WCF服务的Windows表单项目时得到了这个
我的WCF配置: 修改
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="LongRunning" sendTimeout="00:10:00" />
</wsHttpBinding>
</bindings>
<client>
<endpoint name="Default"
address="http://localhost:8732/Design_Time_Addresses/PersistencyService/Service1/"
binding="wsHttpBinding"
bindingConfiguration="LongRunning"
contract="PersistencyService.IService1" />
</client>
<services>
<service name="PersistencyService.Service1">
<endpoint
address=""
binding="wsHttpBinding" bindingConfiguration=""
contract="PersistencyService.IService1" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8732/Design_Time_Addresses/PersistencyService/Service1/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
异常消息是远程主机强制关闭现有连接。 我还必须补充一点,我从服务中获得了大约70MB的数据
答案 0 :(得分:6)
在客户端,您需要为app.config
添加一些设置:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="LongRunning" sendTimeout="00:10:00" />
</wsHttpBinding>
</bindings>
<client>
<endpoint name="Default"
address="....."
binding="wsHttpBinding"
bindingConfiguration="LongRunning"
contract="IYourServiceContract" />
</client>
</system.serviceModel>
你没有给我们太多的东西 - 没有配置,没有......所以我只是猜测你可能有什么设置。
基本上,您需要为您正在使用的绑定类型定义绑定配置,并且需要增加该绑定配置的sendTimeout
属性(在我的示例中) : 10分钟)。你不能完全关闭超时 - 你可以增加它,但不能关闭它。
然后,您的客户端配置必须通过在bindingConfiguration="...."
配置上指定<endpoint>
属性并使用与绑定配置相同的名称来引用您已定义的绑定配置。当你定义它时。
也许这已经足够了 - 但也许,您还需要增加服务器方面的部分超时时间。首先尝试这个 - 如果它不起作用,请再次询问 - 并请,下次:向我们提供一些更有用的信息,例如您的代码和配置!