web-dev-qa-db-ja.com

IISを使用した場合のSignalR 2.0エラー/ signalr / hubs 404(見つかりません)

EPiServer 7.5(MVC4フレームワーク)のSignalR 2.0に問題があります。私が得るすべては404エラーです

GET http://web.com/signalr/hubs 404(見つかりません)

Windows 2012 R2サーバーですべてをホストしています。また、IIS Visual Studioから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
  • 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 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から更新されたソリューションではありません!

16
Eric Herlitz

エラーはこの投稿とまったく同じでした 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
13
Eric Herlitz

ちょうど私の2セントを入れたかった。私はこのエラーがあり、それは私が持っていたので

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

私のweb.configで。この行を削除すると、すべてが修正されました!

17
Phil

新しく構築されたWin 2012R2サーバーで "MoveShape"デモを機能させるための同様の問題が発生しました。 「Webサーバー(IIS)」->「アプリケーション開発」を選択し、「。NET拡張機能4.5」、「ASP.NET 4.5」、「ISAPI拡張機能」、「ISAPIフィルター」を選択して、問題を解決しました。 「WebSocketプロトコル」。

システムまたはIISを再起動すると、デモが機能し始めます。

6
Tony

私の問題は、packages.configでversion = "2.1.0"を指定して参照されたnuget-package "Microsoft.Owin.Host.SystemWeb"を削除し、version = "3.0.1"をインストールすることで解決しました。

このバージョンでは、名前空間「Host」が見つからなかったというエラーで、サーバー2012r2のiis8でowin環境が開始されませんでした。

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]
3
d13z

ちょうど同じ404問題がありました。結局、問題だったものを除いて、すべてのDLLを更新しました。 Microsoft.AspNet.SignalR.SystemWeb.dllを更新しませんでした

0
Matt Watson