繁体   English   中英

提高单个Web服务的超时时间

[英]Raise the time-out for a single webservice

我的Web配置如下所示:

<system.web>
    <compilation debug="false"/>
    <httpRuntime executionTimeout="90"/>
</system.web>

这适用于大多数Web服务函数,但是一个函数的查询运行时间很长(5分钟),并且在完成之前将停止。 是否可以单独为此Web服务将运行时设置为5分钟?

例如:

  MyWebServices.asmx?op=WS_LongMethod --> Timeout of 5 minutes

我已经考虑过运行数据库查询async(fire and forget),但是通过ODBC使用sybase / oracle似乎不可能。

是的,你可以这么做。 在web.config中,您需要添加<location/>元素:

<location path="Path_To_Your_Service.asmx">
    <system.web>
        <httpRuntime executionTimeout="90"/>
    </system.web>
</location>

<location/>元素为您提供了一种机制,您可以将web.config属性应用于站点中的特定路径。

您可以使用Web服务中的委托异步调用另一个方法。 在此方法中,您可以执行数据库IO。 这意味着您将在操作完成之前返回调用者,但是如果您生成唯一ID并存储与该ID相关的任何信息,则可以在以后检索它。

你检查过web服务的.Timeout属性了吗?

指示XML Web服务客户端等待同步XML Web服务请求完成的时间(以毫秒为单位)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM