Csharp/C#教程:Azure WebSites或Azure云服务上的MVC4 API :’System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption’分享


Azure WebSites或Azure云服务上的MVC4 API :’System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption’

当我尝试将我的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":"rnServer stack trace: rn at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)rn at System.Reflection.RuntimeAssembly.GetExportedTypes()rn at System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)rn at System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)rn at System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()rn at System.Lazy`1.CreateValue()rnrnException rethrown at [0]: rn at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes)rn at System.Reflection.RuntimeAssembly.GetExportedTypes()rn at System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)rn at System.Web.Http.WebHost.WebHostHttpControllerTypeResolver.GetControllerTypes(IAssembliesResolver assembliesResolver)rn at System.Web.Http.Dispatcher.HttpControllerTypeCache.InitializeCache()rn at System.Lazy`1.CreateValue()rn at System.Lazy`1.LazyInitValue()rn at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.InitializeControllerInfoCache()rn at System.Lazy`1.CreateValue()rnrnException rethrown at [1]: rn at System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(HttpRequestMessage request)rn at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage request, CancellationToken cancellationToken)rn at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)"}" 

这里只是消息:

 "Could not load type 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'." 

当我尝试从远程站点点击任何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并且它搞砸了所有内容。

上述就是C#学习教程:Azure WebSites或Azure云服务上的MVC4 API :’System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption’分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1002982.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐