"路径中的非法角色" .net MVC4 SignalR版本1.1.4

时间:2017-02-23 15:07:11

标签: c# jquery asp.net-mvc asp.net-mvc-4 signalr

我不确定这种情况何时发生,但它从无处开始,并且在从控制器的动作方法返回任何视图时发生。这是在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画廊看到和收集的内容。

1 个答案:

答案 0 :(得分:1)

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

实际上,它只能起作用,因为捆绑包忽略了.min.js文件而根本没有添加它。给它起作用的错觉。发现了然后找到了真正的罪魁祸首。

我忘了添加maphubs,

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