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!
Ответы
Ответ 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