Signalr не работает в службе WCF, размещенной в IIS8 на сервере 2012R2
Я относительно новым для asp.net и провела последние 3 дня пытаюсь получить простой вариант помощью SignalR настроен в моей c# обслуживание в WCF. Но я, кажется, хожу по кругу. Первая проблема-это путаница в том, где должны быть загружены/созданы различные элементы или signalR. Может быть, для меня лучше всего дать свое понимание требуемой установки.
Моя установка выглядит следующим образом:
Мое приложение-служба - это служба C# WCF, которая работает в IIS8 на сервере windows 2012R2. ("служба")
Мое клиентское приложение - это приложение c# WebForm, работающее на том же сервере windows 2012R2 ("клиент")
Клиентское приложение имеет файл JavaScript с именем myJavaScript.js ("файл JavaScript")
Пользователи получают доступ к сервису через "клиент", работающий в веб-браузере, обычно Chrome ("браузер")
Ниже приведены изменения, которые я внес в "служба", "клиент" &усилитель; "файл JavaScript"в моих попытках отправить простое сообщение из сервиса в браузер через signalR.
Изменения в "служба"(имя приложения DCRules2)
* Загружено из nuget Microsoft.сеть САШ.V2 с помощью SignalR.2.2
* Загружено из nuget Microsoft.сеть САШ.Помощью SignalR,основные V2.2.2
* Загружено из nuget Microsoft.сеть САШ.SignalRJS версии v2.2.2
* Загружено из nuget Microsoft.сеть САШ.Помощью SignalR.SystemWeb версии v2.2.2
• Скачал из NuGet для Microsoft.Долг.SystemWeb В3.1.0
* Загружено из nuget Microsoft.Долг В3.1.0
• Скачал из NuGet для Microsoft.Долг.Безопасность V3.1.0
• Скачал из NuGet долг В1.0.0
Добавлен класс запуска Owin Startup Class Startup1. cs
using System; using System.Threading.Tasks; using Microsoft.AspNet.SignalR; using Microsoft.Owin; using Owin; using DCRules2; [assembly: OwinStartup(typeof(DCRules2.Startup1))] namespace DCRules2 { public class Startup1 { public void Configuration(IAppBuilder app) { // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 //app.MapSignalR(); //app.MapSignalR("/~/signalr", new HubConfiguration()); var hubConfiguration = new HubConfiguration(); app.MapSignalR("/signalr", hubConfiguration); } } }
Добавлен хаб класса TiosHub. cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.AspNet.SignalR; using Microsoft.AspNet.SignalR.Hubs; namespace DCRules2 { //[HubName("tios")] public class TiosHub : Hub { // Tell all of the clients that there is an announcement public void Announce(string message) { Clients.All.Announce(message); } } }
Перестроил службу и перезапустил IIS
++++++++++++++++++++++++++++++++++++++++++++++++
Изменения в "клиент"(имя приложения DCRulesWeb01)
* Загружено из nuget Microsoft.сеть САШ.Помощью SignalR.Клиент версии v2.2.2
• Скачал из NuGet для Microsoft.Долг.SystemWeb В3.1.0
* Загружено из nuget Microsoft.Долг В3.1.0
• Скачал из NuGet долг В1.0.0
Я добавил JavaScript-ссылки на файл webform1.aspx-файл
<script src="~/Scripts/jquery.signalR-2.2.2.js"> </script> <script src="~/signalr/hubs"></script>
Я добавил сообщить() метод в webform1.aspx-файл.CS, чтобы проверить помощью SignalR
// Test SignalR public void Announce(string message) { string msg = message; }
++++++++++++++++++++++++++++++++++++++++++++++++
Изменения в "файл JavaScript"(имя приложения DCRulesWeb01)
Myjavascript.js файл-это файл JavaScript на клиентской стороне, который я вставил следующий код в:
// SignalR configuration $(function () { var tioshub = $.connection.tiosHub; $.connection.hub.start().done(function () { }); tioshub.client.announce = function (message) { console.info('Received message: ' +message); } });
наконец я заново построил клиентское приложение, опубликовал проект и заново запустил IIS
Когда я запускаю службу и нажимаю F12 , я получаю следующие ошибки
1. не удалось загрузить ресурс - сервер ответил со статусом 404 (не найден) jquery.signalR-2.2.2.js
2. не удалось загрузить ресурс - сервер ответил со статусом 404 (не найден) хабов
3. Uncaught TypeError: не удается прочитать свойство 'tiosHub' undefined
Одна вещь, которую я ожидал увидеть, - это создание папки signalr/hubs, чего не произошло. Я предполагаю, что это связано с ошибкой 404 выше.
Кто-нибудь может объяснить, что я делаю не так ?
Что я уже пробовал:
Я провел несколько дней, исследуя это, спустился во многие кроличьи норы, но до сих пор не нашел ответа