gpt4 book ai didi

c# - Azure 网站或 Azure 云服务上的 MVC4 API [错误] : 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption'

转载 作者:太空狗 更新时间:2023-10-29 20:10:56 25 4
gpt4 key购买 nike

当我尝试将 Web API 项目部署到 Azure 上的云网站和云托管服务时,出现此错误:

"{"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)"}"

这只是消息:

"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-harbor,而且仍然没有解决方案。感谢您的帮助。

最佳答案

您关于从 .NET 4.5 开始并回滚导致问题的说法是正确的,这里是有关此问题的官方文档和链接。

Changing an ASP.NET MVC 4 project to target 4.0 from 4.5 does not update the EntityFramework assembly reference: If you change an ASP.NET MVC 4 project to target 4.0 after targetting 4.5 the reference to the EntityFramwork assembly will still point to the 4.5 version. To fix this issue reinstall the EntityFramework NuGet package.

将项目切换到 .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 也解决了该问题,但为了向后兼容,上述修复要好得多。)

关于c# - Azure 网站或 Azure 云服务上的 MVC4 API [错误] : 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com