"Illegal character in path".net MVC4 SignalR 版本 1.1.4

"Illegal character in path" .net MVC4 SignalR version 1.1.4

我不确定这是什么时候发生的,但它不知从何而来,并且发生在控制器的操作方法的任何视图的 return 期间。这是 Visual studio 上的 运行,这里是错误:

   System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.Combine(String path1, String path2)
   at System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping)
   at System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String& directory, String& baseName)
   at System.Web.Configuration.UserMapPath.MapPath(String siteID, String path)
   at System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull)
   at System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath, Boolean permitNull)
   at System.Web.CachedPathData.GetPhysicalPath(VirtualPath virtualPath)
   at System.Web.CachedPathData.GetConfigPathData(String configPath)
   at System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp)
   at System.Web.HttpContext.GetFilePathData()
   at System.Web.HttpContext.GetConfigurationPathData()
   at System.Web.Configuration.RuntimeConfig.GetConfig(HttpContext context)
   at System.Web.HttpContext.get_ImpersonationToken()
   at System.Web.ClientImpersonationContext.Start(HttpContext context, Boolean throwOnError)
   at System.Web.ThreadContext.SetImpersonationContext()
   at System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext)
   at System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext)
   at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)

这是我发现的错误:

MvcApplication: 08:59:37,017 [40] ERROR - Requested url: /function () {"use strict"; _pageLoaded = true; }
MvcApplication: 08:59:37,033 [40] ERROR - Requested Path: /function () {"use strict"; _pageLoaded = true; }

看起来这可能来自 jquery 库。我使用的是版本 3.1.1

处理此问题的最佳方法是什么?为什么它会突然开始发生?我确实安装了 SignalR Api,但立即没有任何明显的问题。我还在带有 .net 4.0

的 MVC4 应用程序中使用 Boostrap

更新,嗯,我删除了我的 SignalR 脚本包,它解决了这个问题。所以它与 SignalR 脚本有关,版本 1.1.4

Update2,尝试更新到仍然支持 .net Framework 4.0 的更高版本的 SignalR(版本 1.2.2),但仍然遇到相同的问题。我认为这个版本是支持 4.0 的最新版本,这是我从 NUGET 画廊看到和收集的。

从 jquery.signalR-1.2.2.js 切换到 jquery.signalR-1.2.2.min.js 似乎解决了这个问题。

实际上,它之所以起作用,是因为捆绑包忽略了 .min.js 文件并且根本没有添加它。给人一种它正在工作的错觉。找到了,然后找到了真正的罪魁祸首。

我忘了添加 maphubs,

    protected void Application_Start()
    {
        RouteTable.Routes.MapHubs();