Search code examples
c#asp.netsignalrdotnetnukedotnetnuke-7

/signalr/hubs 404 (Not Found) in DNN 7.3.4


I am developing a website using DNN 7.3.4. I am signalr in this. I have executed this script for AUM_DoNotRewriteRegEx.

IF NOT EXISTS (SELECT * FROM dnn_hostsettings WHERE SettingName = 'AUM_DoNotRewriteRegEx' )

      insert into dnn_hostsettings
        (SettingName
        , SettingValue
        , SettingIsSecure 
        , CreatedByUserId
        , CreatedOnDate
        , LastModifiedByUserId
        , LastModifiedOnDate
        )
        values(
        'AUM_DoNotRewriteRegEx'
        ,'/DesktopModules/|/Providers|/LinkClick\.aspx|/SignalR'
        , 0
        , -1
        , GETDATE()
        , -1
        , GETDATE()
        )

    GO

    IF EXISTS (SELECT * FROM dnn_hostsettings WHERE SettingName = 'AUM_DoNotRewriteRegEx' and SettingValue not like '%/signalr%' )

    update dnn_hostsettings
        set settingValue = (select settingValue + '|/signalr' from dnn_hostsettings where settingname = 'AUM_DoNotRewriteRegEx')
    where settingname = 'AUM_DoNotRewriteRegEx'

    GO

And in my page

<script type="text/javascript" src='<%=ResolveClientUrl("~/signalr/hubs") %>'></script>

var objHub = $.connection.myHub;
$.connection.hub.start().done(function () {
    //....
})

But it's not working every time it's showing this. enter image description here


Solution

  • After huge R&D I found this

    My owin startup class was not starting. I already have these keys in web config for automatically start owin

    <add key="owin:AutomaticAppStartup" value="true" />
    <add key="owin:appStartup" value="MyNamespace.MyStartupClass" />
    

    But owin startup class was not starting after doing this.

    Then I found Microsoft.Owin.Host.SystemWeb is responsible for starting owin startup class. And I missed to add this dll in my project. After adding Microsoft.Owin.Host.SystemWeb owin started and register hub routes successfully.