entity framework:路径中的非法字符。 (连接字符串)(MVC3)

我只是无法解决这个问题:

我正在尝试在我的MVC3项目中使用entity framework。 但每次我调用Entities context = new Entities(); 我收到此错误:路径中的字符非法。 我知道这与我的connectionstring有关,如下所示:

 metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;Initial Catalog=databasename;Persist Security Info=True;User ID=username;Password=password;MultipleActiveResultSets=True" 

我使用Reflector来查明是否正确嵌入我的程序集中的资源,答案是肯定的,它们完全嵌入我的程序集中作为Models.Model.csdl,.ssdl和.msl …

我的模型与我正在尝试连接的程序集相同,并且未被引用,这意味着通配符*应该可以正常工作。

ConnectionString与向导生成的完全相同……

 [ArgumentException: Illegal characters in path.] System.IO.Path.CheckInvalidPathChars(String path) +142 System.IO.Path.Combine(String path1, String path2) +46 System.Web.Compilation.DiskBuildResultCache.GetBuildResult(String cacheKey, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate) +41 System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate) +237 System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath, Boolean ensureIsUpToDate) +162 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +91 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) +203 System.Web.Compilation.BuildManager.GetObjectFactory(String virtualPath, Boolean throwIfNotFound) +180 System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists(String virtualPath) +18 System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName(ControllerContext controllerContext, List`1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) +228 System.Web.Mvc.VirtualPathProviderViewEngine.GetPath(ControllerContext controllerContext, String[] locations, String[] areaLocations, String locationsPropertyName, String name, String controllerName, String cacheKeyPrefix, Boolean useCache, String[]& searchedLocations) +492 System.Web.Mvc.VirtualPathProviderViewEngine.FindView(ControllerContext controllerContext, String viewName, String masterName, Boolean useCache) +198 System.Web.Mvc.c__DisplayClassc.b__b(IViewEngine e) +47 System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths) +177 System.Web.Mvc.ViewResult.FindView(ControllerContext context) +144 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +151 System.Web.Mvc.c__DisplayClass1c.b__19() +33 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +784900 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976 System.Web.Mvc.Controller.ExecuteCore() +159 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335 System.Web.Mvc.c__DisplayClassb.b__5() +62 System.Web.Mvc.Async.c__DisplayClass1.b__0() +20 System.Web.Mvc.c__DisplayClasse.b__d() +54 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371 

它甚至没有显示出现问题的ActionResult ……

最后,在删除SERVERNAME \ INSTANCE中的反斜杠后,它开始工作。 (在我的SQL Server实例中添加了一个别名,但没有反斜杠)。 也许可以通过使用web.config从非法字符中删除反斜杠来解决…它如何在该列表上保持未知