我已经创建了一个SharePoint托管应用,并且刚刚向应用添加了许可检查。通过使用SP.WebProxy调用REST端点来完成许可证检查。该应用程序是作为应用程序部件实现的,因此页面上可以有许多应用程序实例。
如果页面上只有一个或两个应用程序实例,那么一切正常。然而,只要我向页面添加第三个实例,第三个实例就会启动许可证检查失败并显示错误"此应用程序已达到其出站请求限制。"
显然这种情况正在发生,因为所有三个实例同时都在访问SharePoint代理服务。看起来似乎允许特定应用程序同时进行的呼叫数量有限制。
问题是我无法找到有关此限制的任何文档。我所获得的错误并未在Google中受到重创。这是一个可以通过web.config中的设置增加的限制吗?
有人知道我可以咨询哪些文件吗?
答案 0 :(得分:0)
我已经使用以下解决方法来传递此错误。 (检查错误消息,然后使用“setTimeout”重新执行查询)
var response = SP.WebProxy.invoke(context, request);
// Set the event handlers and invoke the request.
context.executeQueryAsync(
function () {
if (response.get_statusCode() == 200) {
var arrayResult = xmlToJson($.parseXML(response.get_body()));
d.resolve(arrayResult);
}
else {
var errorMessage = response.get_body();
if (response.get_statusCode() == 403 && errorMessage == "This app has reached its outbound request limit.") {
//Try again in 100ms
setTimeout(function () {
console.log("reload");
response = SP.WebProxy.invoke(context, request);
context.executeQueryAsync(function () {
if (response.get_statusCode() == 200) {
var arrayResult = xmlToJson($.parseXML(response.get_body()));
d.resolve(arrayResult);
}
});
}, 100);
}
else {
d.reject(response.get_body());
}
}
},
function () { d.reject(response.get_body()); });
return d.promise();