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参照を追加することです。
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から更新されたソリューションではありません!
エラーはこの投稿とまったく同じでした 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で。この行を削除すると、すべてが修正されました!
新しく構築されたWin 2012R2サーバーで "MoveShape"デモを機能させるための同様の問題が発生しました。 「Webサーバー(IIS)」->「アプリケーション開発」を選択し、「。NET拡張機能4.5」、「ASP.NET 4.5」、「ISAPI拡張機能」、「ISAPIフィルター」を選択して、問題を解決しました。 「WebSocketプロトコル」。
システムまたはIISを再起動すると、デモが機能し始めます。
私の問題は、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]
ちょうど同じ404問題がありました。結局、問題だったものを除いて、すべてのDLLを更新しました。 Microsoft.AspNet.SignalR.SystemWeb.dllを更新しませんでした