WebApi异步任务返回超时

时间:2014-04-17 20:47:58

标签: timeout breeze ravendb asp.net-web-api

我有一个durandal微风和knokouts SPA。服务器webapi返回异步任务>等待来自ravendb服务器的数据的列表。这个电话和往常一样:

var query = EntityQuery.from('Benefits')
                        .orderBy('benefitName');

        return manager.executeQuery(query)
                .then(querySucceeded)
                .fail(queryFailed);

始终返回queryFailed(404 Not found错误)。它不会等待数据。

如果我从没有数据库连接的服务器返回硬编码数据列表,则可以正常工作。

任何想法?

设置查询调用的超时是否是一种简单的方法?

1 个答案:

答案 0 :(得分:1)

2014年5月16日更新

您可以使用AJAX适配器requestInterceptor从v.1.4.12开始设置HTTP级超时和取消。请参阅文档"Controlling AJAX calls"

原始答案

您可以自定义Breeze AJAX适配器或完全替换它,如下所述:http://www.breezejs.com/documentation/customizing-ajax

如果你正在使用jQuery ajax适配器,你可以尝试

// get the current default Breeze ajax adapter
var ajaxAdapter = breeze.core.config.getAdapterInstance("ajax");
// set fixed headers and timeout
ajaxAdapter.defaultSettings = {
   headers: { 
       "Accept": "application/json, text/javascript, */*; q=0.01"
   }
   timeout: 8000,
};