Вопрос по signalr, asp.net-mvc-4, episerver-7 – Ошибка SignalR 2.0 / сигнализатор / концентраторы 404 (не найдены) при использовании IIS

15

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

ПОЛУЧИТЬhttp://web.com/signalr/hubs 404 (не найден) я

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

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

Microsoft.AspNet.SignalR.Client, 2.0.0.0Microsoft.AspNet.SignalR.Core, 2.0.0.0Microsoft.AspNet.SignalR.System.Web, 2.0.0.0Microsoft.OWin, 2.1.0.0Microsoft.OWin.Host.SystemWeb, 2.1.0.0Microsoft.Owin.Security, 2.0.0.0Овин, 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

        /// 
        /// Configure SignalR
        /// 
        /// 
        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
    }
}

Скрипт включения







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

Пожалуйста, проверьте версии SignalR, а такжеstackoverflow.com/questions/26750727/... Anton Lyhin
@ThiagoCustodio Да, решение отлично работает в IIS Express в Visual Studio, и я также могу отладить файл startup.cs Eric Herlitz

Ваш Ответ

5   ответов
2

Microsoft.Owin.Host.SystemWeb», на который ссылались в packages.config с version = "2.1.0" и установка версии = "3.0.1" .

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

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]
13

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
Я думаю, что конфликты в кеше были вызваны тем, что я удалил каталог сайта, а затем загрузил новый контент, когда сайт еще работал. И я повторил эту проблему. Таким образом, урок заключается в закрытии Веб-сайта перед его обновлением. ZZZ
Мои решения работают в разных приложениях и хостах. Мое первое приложение работало в течение года, но внезапно перестало работать, хотя все еще хорошо работает в моем локальном IIS. После запуска этого скрипта мое приложение снова работает в IIS в 2012 году. ZZZ
6

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

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

16

и в итоге это было потому, что я имел

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

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

Я также искал решение для той же проблемы, спасибо, Фил, это также работает для меня. :) himanshu
Вы можете написать свое решение, потому что у меня есть проблема? Ivan
0

L, кроме одной, которая была проблемой. Я не't обновить Microsoft.AspNet.SignalR.SystemWeb.dll

Какие версии были у вас до и после? Eric Herlitz

Похожие вопросы