【发布时间】:2015-09-02 16:40:21
【问题描述】:
我为网站创建了一个小模块,它使用 SignalR 来检测用户是否需要刷新浏览器。在本地它可以工作,但是当代码投入生产时,会产生数千个错误:
- 请求:(来自网站的大量页面)
- 推荐人:https://(website)/signalr/abort
- 错误信息:403:Http 错误 403
服务器端:(mainProject/Hubs 目录):
public class AppVersionNotifierHub : Hub<IAppVersionNotifierHub>
{
public void CheckAppVersion(string version)
{
// if client has diffrent version, invoke callback
if (Global.Version != version)
{
Clients.Caller.NewAppVersion(Global.Version);
}
}
}
Javascript(类型脚本):
this.subscribeVersionChecker = () => {
var hub = (<any>$.connection).appVersionNotifierHub;
hub.client.newAppVersion = (version: string) => {
.. some logic
}
$.connection.hub.start(() => {
hub.server.checkAppVersion(customerVersion.text());
});
$.connection.hub.reconnected(() => {
setTimeout(() => {
hub.server.checkAppVersion(customerVersion.text());
}, 5000); // Restart connection after 5 seconds.
});
$.connection.hub.disconnected(() => {
setTimeout(() => {
$.connection.hub.start();
}, 10000); // Restart connection after 10 seconds.
});
};
任何想法为什么有些客户会产生错误?
- 网站托管在 azure 上
- 为了使用捆绑包,我将动态生成的 signalr.js 文件复制到 Scripts\signalrhub.js 文件中
【问题讨论】:
-
@blas3nik 我不这么认为,因为只有少数客户有问题。
-
@tomasz.salieri 它可能是浏览器版本(例如移动版本)
标签: c# azure asynchronous signalr