Jquery ASP.NET母版问题信号器 [英] Jquery ASP.NET masterpage problem signalr

查看:90
本文介绍了Jquery ASP.NET母版问题信号器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨伙计,



在我的asp.net网站上我安装了signalR,当我的MS SQL Server的错误表中记录了异常时,SqlDependency是运行,从db接收错误,ErrorHub将消息发送到所有context.Clients.all ....

我的页面显示带有消息5秒的pnael。到目前为止一直很好。

然后我点击一个菜单选项。从默认更改为另一个aspx页面(具有相同的母版页)。如果在db中设置了错误,则SqlDependency工作,ErrorHub将发送到context.Clients.All,但不再显示该面板。怎么样?



我尝试了什么:



 [HubName(  errorHub)] 
public sealed class ErrorMessages:Hub
{
private Dependencies.DependencyGenericHandler _dependency;
private DateTime _currentTime;

private ErrorMessages()
{
_currentTime = DateTime.Now;
_dependency = new Dependencies.DependencyGenericHandler( MVS.SQLDEP_Errors);
_dependency.ClearParameters();
_dependency.AddParameters( @ ModifiedByUser,Accounts.AccountControl.CurrentUsername);
_dependency.AddParameters( @ CurrentDateTime,_ currentTime);
_dependency.DependencyResult + = Dependency_DependencyResult;
}

public static readonly ErrorMessages Instance = new ErrorMessages();

public void CallDepency()
{
try
{
_dependency.DependencyResultTable();
}
catch (异常错误)
{
Logging.Log.AddException(err);
}
}

[HubMethodName( displayErrorMessage)]
public void Dependency_DependencyResult(DataTable resultTable)
{
尝试
{
_dependency.DependencyResult - = Dependency_DependencyResult;
StringBuilder sb = new StringBuilder();
Parallel.ForEach(resultTable.AsEnumerable(),row = >
{
sb.AppendLine($ {row.Field< string>( Errormessage )} {Environment.NewLine});
});
var context = GlobalHost.ConnectionManager.GetHubContext< ErrorMessages>();
context.Clients.All.displayErrorMessage(sb.ToString());
_dependency.DependencyResult + = Dependency_DependencyResult;
}
catch (异常错误)
{
Logging.Log.AddException(err);
}
}
}





我的jQuery =

< pre lang =Javascript>< script type = text / javascript>
$( function (){
var errorHub = $ .connection.errorHub ;

errorHub.client.displayErrorMessage = function (resultTable){
try {
$(' #<%= PnlErrors.ClientID%>')。show();
$(' #<%= LbLError.ClientID%>' )。text(resultTable);
setTimeout( $('#<%= PnlErrors.ClientID%>')。hide(); 5000 );

}
< span class =code-keyword> catch (e){
控制台 .log中(E);
}
}
});

$ .connection.hub.start()
.done( function (){ console .log(' 现已连接,连接ID =' + $ .connection .hub.id);})
.fail( function (){ console .log (' 无法连接!');});


< / script>

解决方案

{row.Field< string>( Errormessage )} {Environment.NewLine});
});
var context = GlobalHost.ConnectionManager.GetHubContext< ErrorMessages>();
context.Clients.All.displayErrorMessage(sb.ToString());
_dependency.DependencyResult + = Dependency_DependencyResult;
}
catch (异常错误)
{
Logging.Log.AddException(err);
}
}
}





我的jQuery =

< pre lang =Javascript>< script type = text / javascript>


function (){
var errorHub =


.connection.errorHub;

errorHub.client.displayErrorMessage = function (resultTable){
尝试 {


Hi Folks,

in my asp.net website I have signalR installed and when an exception is recorded in the Errors Table of my MS SQL Server the SqlDependency is run, the error is received from the db, the ErrorHub sends the message to all context.Clients.all....
My page shows a pnael with the message for 5 seconds. So far so good.
I then click on a menu choice. Change from default to another aspx page (with the same master page). If an error is set in the db, the SqlDependency works, the ErrorHub sends to context.Clients.All, but the panel is not shown anymore. How come?

What I have tried:

[HubName("errorHub")]
    public sealed class ErrorMessages : Hub
    {
        private Dependencies.DependencyGenericHandler _dependency;
        private DateTime _currentTime;

        private ErrorMessages()
        {
            _currentTime = DateTime.Now;
            _dependency = new Dependencies.DependencyGenericHandler("MVS.SQLDEP_Errors");
            _dependency.ClearParameters();
            _dependency.AddParameters("@ModifiedByUser", Accounts.AccountControl.CurrentUsername);
            _dependency.AddParameters("@CurrentDateTime", _currentTime);
            _dependency.DependencyResult += Dependency_DependencyResult;
        }

        public static readonly ErrorMessages Instance = new ErrorMessages();

        public void CallDepency()
        {
            try
            {
                _dependency.DependencyResultTable();
            }
            catch (Exception err)
            {
                Logging.Log.AddException(err);
            }
        }

        [HubMethodName("displayErrorMessage")]
        public void Dependency_DependencyResult(DataTable resultTable)
        {
            try
            {
                _dependency.DependencyResult -= Dependency_DependencyResult;
                StringBuilder sb = new StringBuilder();
                Parallel.ForEach(resultTable.AsEnumerable(), row =>
                {
                    sb.AppendLine($"{row.Field<string>("Errormessage")}{Environment.NewLine}");
                });
                var context = GlobalHost.ConnectionManager.GetHubContext<ErrorMessages>();
                context.Clients.All.displayErrorMessage(sb.ToString());
                _dependency.DependencyResult += Dependency_DependencyResult;
            }
            catch (Exception err)
            {
                Logging.Log.AddException(err);
            }
        }
    }



My jQuery =

<script type="text/javascript">
            $(function () {
                var errorHub = $.connection.errorHub;

                errorHub.client.displayErrorMessage = function (resultTable) {
                    try {
                        $('#<%=PnlErrors.ClientID %>').show();
                        $('#<%= LbLError.ClientID %>').text(resultTable);
                        setTimeout(" $('#<%=PnlErrors.ClientID %>').hide();", 5000);
                        
                    }
                    catch (e) {
                        console.log(e);
                    }
                }
            });

            $.connection.hub.start()
                .done(function () { console.log('Now connected, connection ID=' + $.connection.hub.id); })
                .fail(function () { console.log('Could not Connect!'); });

           
        </script>

解决方案

"{row.Field<string>("Errormessage")}{Environment.NewLine}"); }); var context = GlobalHost.ConnectionManager.GetHubContext<ErrorMessages>(); context.Clients.All.displayErrorMessage(sb.ToString()); _dependency.DependencyResult += Dependency_DependencyResult; } catch (Exception err) { Logging.Log.AddException(err); } } }



My jQuery =

<script type="text/javascript">


(function () { var errorHub =


.connection.errorHub; errorHub.client.displayErrorMessage = function (resultTable) { try {


这篇关于Jquery ASP.NET母版问题信号器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆