gpt4 book ai didi

c# - MVC 6,.Net461 上的 SignalR

转载 作者:行者123 更新时间:2023-11-30 23:23:12 25 4
gpt4 key购买 nike

我正在尝试找到一种方法来启动 signalR 并映射集线器,在 MVC6 应用程序中,由于 NHibernate 而依赖于 .Net461。

我尝试使用 "Microsoft.AspNet.SignalR.Server":"3.0.0-beta5" 但我一直在恢复包时遇到错误:

"The dependency Microsoft.AspNet.SignalR.Server 3.0.0-beta5 does not support framework .NetFramework, Version=v4.6.1."

{
"dependencies": {
"Domain": "1.0.0-*",
"Globalization": "1.0.0-*",
"Infra": "1.0.0-*",
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNet.SignalR": "2.2.1",
"Microsoft.AspNet.SignalR.Client": "2.2.1",
"Microsoft.AspNet.SignalR.Core": "2.2.1",
"Microsoft.AspNet.SignalR.JS": "2.2.1",
"Microsoft.AspNet.SignalR.Owin": "1.2.2",
"Microsoft.AspNet.SignalR.SystemWeb": "2.2.1",
"Microsoft.AspNet.SignalR.Server":"3.0.0-beta5",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Util": "1.0.0-*",
"UtilTagHelpers": "1.0.0-*"
},

"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5004"
},
"frameworks": {
"net461": {
"frameworkAssemblies": {
"System.Runtime": {}
}
}
},

"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},

"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
},

"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}

我也尝试了 owin 服务器,但它也没有启动。

using Owin;
using Microsoft.Owin;
using Microsoft.AspNet.SignalR;

[assembly: OwinStartup(typeof(RLG.SignalR.OwinStart))]

namespace RLG.SignalR
{
public class OwinStart
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}

在这种情况下使用 SignalR 的更好方法是什么?

最佳答案

为了将 SignalR 与在 net461 框架上运行的 ASP.Net Core 一起使用,您必须进行一些设置。

1) 您需要在“net461”配置中导入“dnxcore50”框架。

"frameworks": {
"net461": {
"imports": "dnxcore50"
}
},

2) 您需要在Web 应用程序项目的根目录中创建一个新文件NuGet.config。一旦将内容替换为以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>

3) 将适当的依赖项添加到您的 project.json 文件中。

"Microsoft.AspNetCore.SignalR.Server": "0.2.0-*"
"Microsoft.AspNetCore.WebSockets": "0.2.0-*"

4) 将适当的依赖项添加到您的 bowser.json 文件。

"signalr": "^2.2.1"

5) 将 Hubs 文件夹添加到 Web 应用程序项目的根目录。

6) 在您的 Startup.cs 文件的 Configure(app, env, loggerFactory) 方法中添加以下行。

app.UseSignalR();

7) 在您的 Startup.cs 文件的 ConfigureServices(services) 方法中添加以下行。

services.AddSignalR(options => options.Hubs.EnableDetailedErrors = true);

此时,在 C# 和 JavaScript 中设置集线器与旧版本或 SignalR 相同。我已经在针对 4.6.1 的 .Net Frameworks 上成功运行。

部分归功于:https://chsakell.com/2016/10/10/real-time-applications-using-asp-net-core-signalr-angular/

关于c# - MVC 6,.Net461 上的 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38465794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com