/signalr/hubs DNN 7.3.4 中的 404(未找到)
/signalr/hubs 404 (Not Found) in DNN 7.3.4
我正在使用 DNN 7.3.4 开发一个网站。我是这方面的信号员。
我已经为 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
在我的页面中
<script type="text/javascript" src='<%=ResolveClientUrl("~/signalr/hubs") %>'></script>
var objHub = $.connection.myHub;
$.connection.hub.start().done(function () {
//....
})
但它并不是每次都显示这个。
我认为您缺少在您的应用程序中启动 signalR 集线器的 OwinStartup class。在我的 github 上查看名为 DnnLogAnalyzer. I have a class called Startup.cs 的这个项目,它连接到 OwinStartup 并启动应用程序的 signalR 集线器。
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(DotNetNuclear.Modules.LogAnalyzer.Components.Startup))]
namespace DotNetNuclear.Modules.LogAnalyzer.Components
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
...
app.MapSignalR();
}
}
}
如果您是 DNNHero.com 订阅者,您还可以查看我的分步教程,了解有关获取 SignalR working in your DNN application 的提示。
经过大量的研发,我发现了这个
我的 owin startup class
没有启动。我已经在网络配置中有这些键可以自动启动 owin
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="MyNamespace.MyStartupClass" />
但是owin startup class
在这样做之后没有开始。
然后我发现Microsoft.Owin.Host.SystemWeb
负责启动owin startup class
。我错过了在我的项目中添加这个 dll
。添加 Microsoft.Owin.Host.SystemWeb
owin
后启动并成功注册中心路由。
我正在使用 DNN 7.3.4 开发一个网站。我是这方面的信号员。
我已经为 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
在我的页面中
<script type="text/javascript" src='<%=ResolveClientUrl("~/signalr/hubs") %>'></script>
var objHub = $.connection.myHub;
$.connection.hub.start().done(function () {
//....
})
但它并不是每次都显示这个。
我认为您缺少在您的应用程序中启动 signalR 集线器的 OwinStartup class。在我的 github 上查看名为 DnnLogAnalyzer. I have a class called Startup.cs 的这个项目,它连接到 OwinStartup 并启动应用程序的 signalR 集线器。
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(DotNetNuclear.Modules.LogAnalyzer.Components.Startup))]
namespace DotNetNuclear.Modules.LogAnalyzer.Components
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
...
app.MapSignalR();
}
}
}
如果您是 DNNHero.com 订阅者,您还可以查看我的分步教程,了解有关获取 SignalR working in your DNN application 的提示。
经过大量的研发,我发现了这个
我的 owin startup class
没有启动。我已经在网络配置中有这些键可以自动启动 owin
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="MyNamespace.MyStartupClass" />
但是owin startup class
在这样做之后没有开始。
然后我发现Microsoft.Owin.Host.SystemWeb
负责启动owin startup class
。我错过了在我的项目中添加这个 dll
。添加 Microsoft.Owin.Host.SystemWeb
owin
后启动并成功注册中心路由。