2016-07-19 3 views
2

Я пытаюсь найти способ запускает сигналR и сопоставляет концентраторы в приложении MVC6, которое зависит от .Net461 из-за NHibernate.MVC 6, SignalR on .Net461

Я пытался использовать "Microsoft.AspNet.SignalR.Server": "3.0.0-Beta5" но я держать получить Эрро на пакет восстановления:

«Зависимость Microsoft.AspNet. SignalR.Server 3.0.0-beta5 не поддерживает .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 в этом сценарии?

+0

я использовал signalR версию '0.2.0-preview2-22683' и его работу. попробуйте это –

ответ

0

Использование последней стабильной (читай: не-бета) версии, он должен работать только штрафом

EDIT: Это, кажется, версии 2.2.1

+0

Ty, Как мне начать его на конвейере, я не вижу, чтобы какой-либо метод сделал с этим? –

+0

AspNetCore.SignalR и ASP.NET SignalR - это две отдельные вещи! Эта версия является AspNetCore.SignalR не ASP.NET SignalR. – WeHaveCookies

2

Для того, чтобы использовать SignalR с ASP.Net Ядра работая на платформе net461, вам нужно немного настроить.

1) Вам необходимо импортировать фреймворк «dnxcore50» в конфигурацию «net461».

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

2) Вам нужно создать новый файл 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 папку в корневом каталоге вашего проекта веб-приложения.

6) В вашем файле Startup.cs добавьте следующую строку в Настройки (приложение, ENV, loggerFactory) метода.

app.UseSignalR(); 

7) В вашем файле Startup.cs добавьте следующую строку в ConfigureServices (услуг) метода.

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

На данный момент настройка концентраторов как на C#, так и на JavaScript идентична старым версиям или SignalR. Я успешно работаю над этим.Тестирование Net Frameworks 4.6.1.

Частичный кредит дается: https://chsakell.com/2016/10/10/real-time-applications-using-asp-net-core-signalr-angular/