2017-02-23 27 views
1

我不確定何時發生這種情況,但它從任何地方開始,並且在從控制器的操作方法返回任何視圖期間發生。這是在Visual Studio中運行,這裏是錯誤:「路徑中存在非法字符」.net MVC4 SignalR version 1.1.4

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,但沒有任何明顯的問題。我還使用自舉,以及在我MVC4應用和.NET 4.0

更新,嗯,我打消了我的SignalR腳本包,它解決了問題。所以它是與SignalR腳本,版本1.1.4

UPDATE2,試圖更新到SignalR更高版本(1.2.2版本)仍然支持.NET框架4.0和仍然得到同樣的問題。我認爲這個版本是支持4.0的最新版本,這是我從NUGET畫廊看到和收集的內容。

+0

.NET框架4停止被支持,比去年同期多:https://blogs.msdn.microsoft.com/dotnet/2015/12/09/ support-ending-the-net-framework-4-4-5-and-4-5-1/ – Pawel

+0

告訴我的公司。我試圖推動更新版本的Visual Studio。 :/ – eaglei22

回答

1

從jquery.signalR-1.2.2.js切換到jquery.signalR-1.2.2.min.js似乎可以解決此問題。

實際上,它只能工作,因爲捆綁軟件忽略了.min.js文件而根本沒有添加它。給了它正在工作的幻覺。發現這一點,然後找到真正的罪魁禍首。

我忘了加上maphubs,

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