2011-01-19 14 views
5

私はこの問題を解決できません: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" 

私はきちんと私のアセンブリに埋め込まれたリソースかどうかを確認するためにリフレクターを使用し、その答えはイエス、彼らは完全に埋め込まれていますModels.Model.csdl、.ssdl、.mslとしての私のアセンブリで...

私のモデルは、私が接続しようとしていたのと同じアセンブリにあり、参照されていません。つまり、ワイルドカード*ただうまく動作します。それも、問題が発生しているのActionResultを表示しません

[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.<FindView>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.<InvokeActionResultWithFilters>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.<BeginProcessRequest>b__5() +62 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371 

ウィザードによって生成されるのConnectionStringがまったく同じである

... ...最後に

+0

残念ながら、無効な文字はユーザー名またはパスワードにある可能性があります。多分あなたはそれらをスクランブルして掲示することができますか?または、少なくともそれらの文字の種類を列挙しますか? –

+0

まあ、私もそのことを考えました、彼らは実際には普通の文字です。 「thisisapassword」のような特別なものはありません... soo [a-zA-Z] – reinder

答えて

1

、除去した後SERVERNAME \ INSTANCEのバックスラッシュで作業を開始しました。 (エイリアスをバックスラッシュなしでSQL Serverインスタンスに追加しました)。おそらくweb.configを使用して不正な文字からバックスラッシュを取り除くことで解決できます。そのリストにはどのようになっているのか不明です

関連する問題