Подтвердить что ты не робот

SignalR 2.0 error/signalr/hubs 404 (не найден) при использовании IIS

У меня возникают некоторые проблемы с SignalR 2.0 в EPiServer 7.5 (структура MVC4). Все, что я получаю, это ошибка 404

GET http://web.com/signalr/hubs 404 (не найдено)

Я размещаю все на сервере Windows 2012 R2. Также следует отметить, что решение работает при запуске всего в IIS Express из Visual Studio, но не в IIS 8.5.

Что я сделал до сих пор, так это добавить ссылки SingalR.

  • Microsoft.AspNet.SignalR.Client, 2.0.0.0
  • Microsoft.AspNet.SignalR.Core, 2.0.0.0
  • Microsoft.AspNet.SignalR.System.Web, 2.0.0.0
  • Microsoft.OWin, 2.1.0.0
  • Microsoft.OWin.Host.SystemWeb, 2.1.0.0
  • Microsoft.Owin.Security, 2.0.0.0
  • Owin, 1.0.0.0

Startup.cs

Запуск инициализируется при запуске приложения, поэтому он работает.

[assembly: OwinStartup(typeof(Web.Startup))]
namespace Web
{
    public class Startup
    {
        #region Local variables

        private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        #endregion

        #region Methods

        /// <summary>
        /// Configure SignalR
        /// </summary>
        /// <param name="app"></param>
        public void Configuration(IAppBuilder app)
        {
            try
            {
                Logger.MethodCallEntry();

                // Any connection or hub wire up and configuration should go here
                //app.MapSignalR(); // Doesn't work either
                var hubConfiguration = new HubConfiguration
                {
                    EnableDetailedErrors = true,
                    EnableJavaScriptProxies = false
                };

                app.MapSignalR("/signalr", hubConfiguration);
            }
            catch (Exception ex)
            {
                Logger.Error("Failed to initialize or map SignalR", ex);
            }
            finally
            {
                Logger.MethodCallExit();
            }
        }

        #endregion
    }
}

Script включение

<script src="/Static/Frameworks/Scripts/jquery-1.10.2.js"></script>
<script src="/Static/Frameworks/Scripts/knockout-3.0.0.js"></script>
<script src="/Static/Frameworks/Scripts/modernizr.2.7.0.js"></script>
<script src="/Static/Frameworks/Scripts/jquery.signalR-2.0.1.js"></script>
<!-- also tried path ~/signalr/hubs -->
<script src="/signalr/hubs"></script>

Это не решение, обновленное из 1.x SignalR!

4b9b3361

Ответ 1

Ошибка была такой же, как в этом сообщении http://blogs.msdn.com/b/praburaj/archive/2013/12/02/owin-startup-class-not-detected.aspx

Решение заключалось в том, чтобы полностью очистить кеш asp.net

Запустите это в PowerShell

net stop w3svc
Remove-Item -Path "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\*" -Force -Recurse
Remove-Item -Path "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\*" -Force -Recurse
net start w3svc

Ответ 2

просто хотел поставить свои 2 цента. У меня была эта ошибка, и это закончилось тем, что у меня был

<add key="owin:AutomaticAppStartup" value="false" />

в моем web.config. удаление этой строки исправило все для меня!

Ответ 3

У меня была аналогичная проблема с получением демоверсии MoveShape для работы на недавно построенном сервере Win 2012R2. Я решил проблему, добавив роль/функции: "Веб-сервер (IIS)" → "Разработка приложений" и выбрав ".NET Extensibility 4.5", "ASP.NET 4.5", "ISAPI Extensions", "ISAPI Filters" и "Протокол WebSocket".

Как только я перезапустил систему или IIS, демонстрационная работа начнется.

Ответ 4

Моя проблема была решена путем удаления nuget-пакета "Microsoft.Owin.Host.SystemWeb", на который ссылались в файле packages.config с версией = "2.1.0" и установка версии = "3.0.1".

В этой версии среда owin никогда не запускалась на iis8 на сервере 2012r2 с ошибкой, что пространство имен "Host" не было найдено.

Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.Owin.Host.SystemWeb, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". Check to make sure the assembly exists on disk.

Startup.cs(2,22): error CS0234: The type or namespace name 'Host' does not exist in the namespace 'Microsoft.Owin' (are you missing an assembly reference?) [*.csproj]

Ответ 5

У нас была такая же проблема 404. Закончился я обновил все DLL файлы, кроме одного, что было проблемой. Я не обновлял Microsoft.AspNet.SignalR.SystemWeb.dll