Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在Azure Gov应用程序服务中发布后,信号器功能不起作用_Asp.net Mvc_Signalr_Azure Web App Service_Signalr Hub_Signalr.client - Fatal编程技术网

Asp.net mvc 在Azure Gov应用程序服务中发布后,信号器功能不起作用

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

我已经在我的应用程序中实现了signer,它在prem中运行良好,一旦我在Azure Gov中发布它,从服务器到客户端的signer调用就不总是有效的。特别是对于IE brewer,信号器呼叫在大多数情况下都不起作用。在Chrome中,有时它不起作用

客户端代码

$(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之前,一切都很好。