Asp.net mvc 在Azure Gov应用程序服务中发布后,信号器功能不起作用
我已经在我的应用程序中实现了signer,它在prem中运行良好,一旦我在Azure Gov中发布它,从服务器到客户端的signer调用就不总是有效的。特别是对于IE brewer,信号器呼叫在大多数情况下都不起作用。在Chrome中,有时它不起作用 客户端代码Asp.net mvc 在Azure Gov应用程序服务中发布后,信号器功能不起作用,asp.net-mvc,signalr,azure-web-app-service,signalr-hub,signalr.client,Asp.net Mvc,Signalr,Azure Web App Service,Signalr Hub,Signalr.client,我已经在我的应用程序中实现了signer,它在prem中运行良好,一旦我在Azure Gov中发布它,从服务器到客户端的signer调用就不总是有效的。特别是对于IE brewer,信号器呼叫在大多数情况下都不起作用。在Chrome中,有时它不起作用 客户端代码 $(function () { var ccuHub = $.connection.alertHub; $.connection.hub.logging = true; $.conne
$(function () {
var ccuHub = $.connection.alertHub;
$.connection.hub.logging = true;
$.connection.hub.start().done(function () { }).fail(function (error) {
console.log('start error: ' + error);
});
if (window.location.pathname == baseUrl + "Home/UserLogin" && $('#inpHdnUserconcurrentUserID').val() != undefined) {
concurrentUserId = $('#inpHdnUserconcurrentUserID').val();
}
ccuHub.client.ForceLogOut = function (connectionId) {
if (connectionId != concurrentUserId) {
// alert('Not Matched concurrentUserId' + concurrentUserId);
Utility.showMessage(resourceList.ConcurrentUser_Warning_SameUserLoggedInAnother, Utility.MessageType.Warning);
var onSuccessLoginLogOut = function () {
window.location.href = baseUrl + "Login/Index?returnUrl=Y"
};
Utility.makeAjaxCall("Login/Logout", "POST", JSON.stringify({ concurrentUserID: concurrentUserId }), onSuccessLoginLogOut, null, null, false);
//$.connection.hub.stop();
}
};
});
[HttpGet]
public void ConcurrentUserLogOut(string connectionId)
{
try
{
logger.Info($"ConcurrentUserLogOut-ConnectionID:{connectionId}");
IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<AlertHub>();
hubContext.Clients.All.ForceLogOut(connectionId);
}
catch (Exception ex)
{
logger.Error("Error on ConcurrentUserLogOut , connection Id : " + connectionId + " Error :" + ex.Message, ex);
}
}
服务器代码
$(function () {
var ccuHub = $.connection.alertHub;
$.connection.hub.logging = true;
$.connection.hub.start().done(function () { }).fail(function (error) {
console.log('start error: ' + error);
});
if (window.location.pathname == baseUrl + "Home/UserLogin" && $('#inpHdnUserconcurrentUserID').val() != undefined) {
concurrentUserId = $('#inpHdnUserconcurrentUserID').val();
}
ccuHub.client.ForceLogOut = function (connectionId) {
if (connectionId != concurrentUserId) {
// alert('Not Matched concurrentUserId' + concurrentUserId);
Utility.showMessage(resourceList.ConcurrentUser_Warning_SameUserLoggedInAnother, Utility.MessageType.Warning);
var onSuccessLoginLogOut = function () {
window.location.href = baseUrl + "Login/Index?returnUrl=Y"
};
Utility.makeAjaxCall("Login/Logout", "POST", JSON.stringify({ concurrentUserID: concurrentUserId }), onSuccessLoginLogOut, null, null, false);
//$.connection.hub.stop();
}
};
});
[HttpGet]
public void ConcurrentUserLogOut(string connectionId)
{
try
{
logger.Info($"ConcurrentUserLogOut-ConnectionID:{connectionId}");
IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<AlertHub>();
hubContext.Clients.All.ForceLogOut(connectionId);
}
catch (Exception ex)
{
logger.Error("Error on ConcurrentUserLogOut , connection Id : " + connectionId + " Error :" + ex.Message, ex);
}
}
[HttpGet]
public void ConcurrentUserLogOut(字符串连接ID)
{
尝试
{
Info($“ConcurrentUserLogOut ConnectionID:{ConnectionID}”);
IHubContext hubContext=GlobalHost.ConnectionManager.GetHubContext();
hubContext.Clients.All.ForceLogOut(connectionId);
}
捕获(例外情况除外)
{
logger.Error(“ConcurrentUserLogOut错误,连接Id:+connectionId+”错误:+ex.消息,ex);
}
}
是否需要为Azure专门做些什么?另外,信号器方法在Azure中占用了太多的时间,应用程序变得非常慢。你有没有发现这一点?在我将我的客户发布到Azure之前,一切都很好。