d4r*_*it3 7 c# azure asp.net-mvc-4 asp.net-web-api azure-web-sites
当我尝试将我的Web API项目部署到Azure上的Cloud WebSites和Cloud Hosted Services时,我收到此错误:
"{"ExceptionType":"System.TypeLoadException","Message":"Could not load type 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.","StackTrace":"\r\nServer stack trace: \r\n at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)\r\n at System.Reflection.RuntimeAssembly.GetExportedTypes()\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)\r\n at System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)\r\n at System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()\r\n at System.Lazy`1.CreateValue()\r\n\r\nException rethrown at [0]: \r\n at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)\r\n at System.Reflection.RuntimeAssembly.GetExportedTypes()\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)\r\n at System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)\r\n at System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()\r\n at System.Lazy`1.CreateValue()\r\n at System.Lazy`1.LazyInitValue()\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache()\r\n at System.Lazy`1.CreateValue()\r\n\r\nException rethrown at [1]: \r\n at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancellationToken)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)"}"
Run Code Online (Sandbox Code Playgroud)
这里只是消息:
"Could not load type 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'."
Run Code Online (Sandbox Code Playgroud)
当我尝试从远程站点点击任何API时,就会发生这种情况.我知道它不是我的500错误,因为我的一些API不会抛出它们而不管发生了什么.
有一点需要注意,我不确定这是否会影响任何东西是我开始这个针对.NET 4.5的项目,但后来当Azure网站表示他们不支持4.5时将其切换到4.0.
除了这个链接,我找不到任何关于此的信息:http: //support.appharbor.com/discussions/problems/4822-internal-server-error-500-mvc-4-web-api
除了那家伙正在使用app-harbour,andeven仍然没有解决方案.谢谢你的帮助.
你是正确的开始在.NET 4.5和回滚导致问题,这是有关此问题和链接的官方文档.
将ASP.NET MVC 4项目从4.5更改为目标4.0不会更新EntityFramework程序集引用:如果在目标4.5之后将ASP.NET MVC 4项目更改为目标4.0,则对EntityFramwork程序集的引用仍将指向4.5版本.要解决此问题,请重新安装EntityFramework NuGet包.
将项目切换到.NET 4.0后重新安装EntityFramework就可以了.
参考:http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815
当我在.NET 4.0中编译MVC RC项目并尝试在没有安装Visual Studio 2012 RC的服务器上的IIS中托管它时,这种情况发生在我身上.
(注意:在服务器上安装Visual Studio 2012 RC也解决了问题,但为了向后兼容,上述修复要好得多.)
所以看来问题是由我从 4.5 回滚到 .NET 4 而实体没有回滚引起的。实体 5 似乎只在 .NET 4.5 上运行,当部署期望 4.3.1 时,它有一个 5.0.0 DLL,它把一切搞乱了。
归档时间: |
|
查看次数: |
4157 次 |
最近记录: |