代码之家  ›  专栏  ›  技术社区  ›  Carra

提高单个WebService的超时值

  •  4
  • Carra  · 技术社区  · 15 年前

    我的网络配置如下:

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

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

    例如。:

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

    我曾经考虑过运行数据库查询异步(Fire and Forget),但在Sybase/Oracle中,通过ODBC似乎不可能。

    3 回复  |  直到 9 年前
        1
  •  12
  •   SliverNinja - MSFT    9 年前

    是的,你能做到。在web.config中,您需要添加 <location/> 元素:

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

    这个 <位置/gt; 元素为您提供了一种机制,通过该机制,您可以将web.config属性应用于站点中的特定路径。

        2
  •  2
  •   cjk    15 年前

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

        3
  •  -1
  •   Kamran Khan    15 年前

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

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