不使用SignalR时,ELMAH中出现SignalR错误

时间:2013-11-13 18:55:47

标签: asp.net-mvc signalr elmah

我在ELMAH中出现与SignalR有关的错误。我没有使用SignalR,我在Localhost上运行。该解决方案是一个MVC5互联网应用程序。造成这种情况的原因是什么?如何阻止这种情况?

  

未找到路径'/ signalr / negotiate'的控制器或未实现IController。

System.Web.HttpException 未找到路径'/ signalr / negotiate'的控制器或未实现IController。

System.Web.HttpException(0x80004005):未找到路径'/ signalr / negotiate'的控制器或未实现IController。    在System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,Type controllerType)    在System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext,String controllerName)    在System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext,IController& controller,IControllerFactory& factory)    在System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,AsyncCallback回调,对象状态)    在System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback回调,对象状态)    在System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context,AsyncCallback cb,Object extraData)    在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()    在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)

2 个答案:

答案 0 :(得分:5)

我通过在Web.config中实现以下内容解决了这个问题,而没有禁用浏览器链接:

<elmah>
    <errorFilter>
        <test>
            <jscript>
                <expression>
                    <![CDATA[
                    // @assembly mscorlib
                    // @assembly System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
                    // @import System.IO
                    // @import System.Web

                    $.Context.Request.UserAgent.match('/*+/arterySignalR/ping')                      
                    ]]>
                </expression>
            </jscript>
        </test>
    </errorFilter>
</elmah>

答案 1 :(得分:2)

如果您使用的是Visual Studio 2013,则可能是由新的浏览器链接功能引起的。尝试disabling it,看看错误是否消失。