Asp.net-Mvc-4
使用 IIS 時 SignalR 2.0 錯誤 /signalr/hubs 404(未找到)
我在 EPiServer 7.5(一個 MVC4 框架)中遇到了 SignalR 2.0 的一些問題。我得到的只是一個 404 錯誤
獲取<http://web.com/signalr/hubs> 404(未找到)
我在 Windows 2012 R2 伺服器上託管所有內容。另外值得注意的是,當從 Visual Studio 在 IIS Express 中執行所有內容時,該解決方案可以工作,但不能在 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
- 微軟.OWin, 2.1.0.0
- Microsoft.OWin.Host.SystemWeb,2.1.0.0
- Microsoft.Owin.Security, 2.0.0.0
- 歐文,1.0.0.0
啟動.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 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 更新的解決方案!
該錯誤與這篇文章中的完全相同 <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 美分。我遇到了這個錯誤,最終是因為我有
<add key="owin:AutomaticAppStartup" value="false" />在我的 web.config 中。刪除這條線為我解決了所有問題!