Asp.net mvc 4 使用IIS时,信号器2.0错误/信号器/集线器404(未找到)

Asp.net mvc 4 使用IIS时,信号器2.0错误/信号器/集线器404(未找到),asp.net-mvc-4,signalr,episerver-7,Asp.net Mvc 4,Signalr,Episerver 7,我对EpiServer7.5(MVC4框架)中的Signalr2.0有一些问题。我得到的只是一个404错误 获取404(未找到) 我在Windows 2012 R2服务器上托管所有内容。同样值得注意的是,当从VisualStudio运行IIS Express中的所有内容时,该解决方案都有效,但在IIS 8.5中则无效 到目前为止,我所做的是添加SingalR引用 Microsoft.AspNet.signal.Client,2.0.0.0 Microsoft.AspNet.SignalR.Co

我对EpiServer7.5(MVC4框架)中的Signalr2.0有一些问题。我得到的只是一个404错误

获取404(未找到)

我在Windows 2012 R2服务器上托管所有内容。同样值得注意的是,当从VisualStudio运行IIS Express中的所有内容时,该解决方案都有效,但在IIS 8.5中则无效

到目前为止,我所做的是添加SingalR引用

  • Microsoft.AspNet.signal.Client,2.0.0.0
  • Microsoft.AspNet.SignalR.Core,2.0.0.0
  • Microsoft.AspNet.signal.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
  • 奥文,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
    }
}
[程序集:OwinStartup(typeof(Web.Startup))]
命名空间Web
{
公营创业
{
#区域局部变量
私有静态只读ILog Logger=LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
#端区
#区域方法
/// 
///配置信号器
/// 
/// 
公共无效配置(IAppBuilder应用程序)
{
尝试
{
Logger.MethodCallEntry();
//任何连接或集线器接线和配置都应位于此处
//app.mapsigner();//也不起作用
var hubConfiguration=新的hubConfiguration
{
EnableDetailedErrors=true,
EnableJavaScriptProxies=false
};
app.MapSignalR(“/signalr”,HUB配置);
}
捕获(例外情况除外)
{
记录器错误(“未能初始化或映射信号器”,例如);
}
最后
{
Logger.MethodCallExit();
}
}
#端区
}
}
脚本包含

<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 Signal更新的解决方案

错误与本文中的错误完全相同

解决方案是完全清空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

我刚刚遇到了一个类似的问题,让“MoveShape”演示在新构建的Win 2012R2服务器上运行。我通过添加角色/功能解决了这个问题:“Web服务器(IIS)”->“应用程序开发”,并选择“.NET扩展性4.5”、“ASP.NET 4.5”、“ISAPI扩展”、“ISAPI过滤器”和“WebSocket协议”


一旦我重新启动了系统或IIS,演示程序就开始工作。

只是想把我的2美分投入其中。我犯了这个错误,结果是因为我

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


在我的web.config中。删除这条线为我解决了一切

也有同样的404问题。最后我更新了所有的DLL,只有一个是有问题的。我没有更新Microsoft.AspNet.signal.SystemWeb.dll

我的问题通过删除nuget软件包“Microsoft.Owin.Host.SystemWeb”得到解决,该软件包在packages.config中以version=“2.1.0”引用,并安装version=“3.0.1”

在这个版本中,owin环境从未在服务器2012r2上的iis8上启动,错误是找不到名称空间“主机”

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]

@ThiagoCustodio是的,该解决方案在Visual Studio的IIS Express中运行良好,我也可以调试startup.cs。请检查SignalR的版本以及您之前和之后的版本?我也在为相同的问题寻找解决方案,非常感谢,Phil这也适用于我。:)你能写你的解决方案吗,因为我有问题?我的解决方案适用于各种应用程序和主机。我的第一个应用程序已经运行了一年,但突然停止运行,而在我的本地IIS中仍然运行良好。运行此脚本后,我的应用程序于2012年在IIS中再次运行。我认为缓存中的冲突是因为我删除了网站目录,然后在网站仍在运行时上载了新内容。我重复了这个问题。所以,教训是在更新网站之前关闭它。对我来说很有用。谢谢删除对Microsoft.Owin.Host.SystemWeb的引用,或将Owin:AutomaticAppStartup设置为false