2016-09-15 172 views
1

我有一个MVC5的Web应用程序,我通常使用我的笔记本电脑开发。为什么我收到“无法加载指定的元数据资源”错误?

我试图让应用程序在主场以家庭为工作日我的主要机器上运行,但有连接到本地开发数据库SQL Server上的一个问题 - 当我启动应用程序,我得到以下错误:

更多信息30/11/16:

注意,该模型是从EDML使用实体开发

Unable to load the specified metadata resource. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

解决方案包括2个项目,w的一种产生这是一个由EDMX生成的实体模型项目。

注:在我的主机(如果它不工作)在Web.config连接字符串是一样的地方工作,除了Data Source这是指SQL Server名称的主要机器对机器 - 我已经检查了这是正确的几次:

我已看过一些堆栈溢出的职位有类似的问题 - 最点到一些错误的路径csdlssdl,连接字符串的msl一部分。

我:

  • 经过服务器名称是经过数据库名称连接字符串
  • 在正确的是经过数据库中存在连接字符串
  • 在正确的和可
  • 经过这三个文件中的每一个都是连接字符串所表示的位置(它们是)
  • 在连接字符串中使用通配符尝试:res://*/dllname.csdl|res://*/dllname.ssdl|res://*/dllname.msl

更新30/11/2016:

从建议中this link我:

  • 经过的MetadataArtifactProcessing属性 - 它没有被设置为Copy to Output directory
  • 检查连接字符串
  • 我们没有后期编译任务

this link的建议,我已经尝试设置连接字符串connectionString="metadata=res://*/;

堆栈跟踪:

[MetadataException: Unable to load the specified metadata resource.] 
    System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderResource.LoadResource() +85 
    System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderResource.CreateReader() +10 
    System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderResource.CreateReaders(DataSpace spaceToGet) +72 
    System.Data.Entity.Core.Metadata.Edm.MetadataArtifactLoaderComposite.CreateReaders(DataSpace spaceToGet) +99 
    System.Data.Entity.Core.Metadata.Edm.MetadataCache.LoadEdmItemCollection(MetadataArtifactLoader loader) +41 
    System.Data.Entity.Core.Metadata.Edm.<>c__DisplayClass5.<GetMetadataWorkspace>b__0(String k) +37 
    System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +72 
    System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace(String cacheKey, MetadataArtifactLoader artifactLoader) +75 
    System.Data.Entity.Core.Metadata.Edm.MetadataCache.GetMetadataWorkspace(DbConnectionOptions effectiveConnectionOptions) +126 
    System.Data.Entity.Core.EntityClient.EntityConnection.GetMetadataWorkspace() +43 
    System.Data.Entity.Core.Objects.ObjectContext.RetrieveMetadataWorkspaceFromConnection() +20 
    System.Data.Entity.Core.Objects.ObjectContext..ctor(EntityConnection connection, Boolean isConnectionConstructor, ObjectQueryExecutionPlanFactory objectQueryExecutionPlanFactory, Translator translator, ColumnMapFactory columnMapFactory) +393 
    System.Data.Entity.Core.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) +35 
    App.Models.Entities..ctor() in C:\Users\Me\Desktop\App\App.MVC5\App.Entities.cs:37 
    App.MVC5.Models.CurrentUser..ctor(Boolean IsGuiDetailsRequired) in C:\Users\Me\Desktop\App\App.MVC5\Models\AccountModels.cs:87 
    App.MVC5.Controllers.HomeController..ctor() in C:\Users\Me\Desktop\App\App.MVC5\Controllers\HomeController.cs:11 

[TargetInvocationException: Exception has been thrown by the target of an invocation.] 
    System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0 
    System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +114 
    System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +232 
    System.Activator.CreateInstance(Type type, Boolean nonPublic) +83 
    System.Activator.CreateInstance(Type type) +11 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +55 

[InvalidOperationException: An error occurred when trying to create a controller of type 'App.MVC5.Controllers.HomeController'. Make sure that the controller has a parameterless public constructor.] 
    System.Web.Mvc.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType) +178 
    System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +76 
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +88 
    Castle.Proxies.Invocations.IControllerFactory_CreateController.InvokeMethodOnTarget() +118 
    Castle.DynamicProxy.AbstractInvocation.Proceed() +80 
    Glimpse.Core.Extensibility.CastleInvocationToAlternateMethodContextAdapter.Proceed() +11 
    Glimpse.Core.Extensions.AlternateMethodContextExtensions.TryProceedWithTimer(IAlternateMethodContext context, TimerResult& timerResult) +41 
    Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context) +25 
    Glimpse.Core.Extensibility.AlternateTypeToCastleInterceptorAdapter.Intercept(IInvocation invocation) +84 
    Castle.DynamicProxy.AbstractInvocation.Proceed() +108 
    Castle.Proxies.IControllerFactoryProxy.CreateController(RequestContext requestContext, String controllerName) +214 
    System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +194 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +50 
    System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +48 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +103 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 
+1

数据库是本地的吗?你在两台机器上安装了相同版本的SQL吗? –

+0

@ChrisCurtis感谢您的回复。是的,我正在尝试运行本地开发数据库。我在运行应用程序的计算机上安装了'SQL Server Developer'并在它不会安装的应用程序上运行'SQL Server Express' - 现在将Developer安装到此计算机上并将报告回去。 –

+0

@ChrisCurtis我已安装'SQL Server Developer',但我得到同样的错误 - 任何想法? –

回答

1

有一个非常流行的问题over there和其评级我可以假设它帮助了很多的人。它甚至提到了一个完整的解决这个问题的博客文章。另外,this answer看起来像你还没有尝试过的东西。

相关问题