2012-06-13 27 views
7

Tôi gặp phải lỗi này khi tôi cố gắng triển khai dự án API Web của mình cho cả Cloud WebSites và Cloud Hosted Services Azure:API MVC4 trên Azure WebSites hoặc Dịch vụ đám mây Azure [Lỗi]: 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption'

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

Dưới đây chỉ là thông điệp:

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

Nó xảy ra khi tôi cố gắng để đạt bất kỳ API của tôi từ các trang web từ xa. Tôi biết nó không phải của tôi 500 lỗi vì một số API của tôi sẽ không ném chúng bất kể điều gì xảy ra. Một điều cần lưu ý và tôi không chắc chắn nếu điều này sẽ ảnh hưởng đến bất cứ điều gì là tôi bắt đầu dự án này nhắm mục tiêu tại. NET 4.5 nhưng sau đó chuyển sang 4.0 khi Azure Web Sites nói rằng họ không hỗ trợ 4,5. Quay lại đầu trang |

tôi không thể tìm thấy bất cứ điều gì về vấn đề này ngoại trừ liên kết này: http://support.appharbor.com/discussions/problems/4822-internal-server-error-500-mvc-4-web-api

trừ anh chàng đó đang sử dụng ứng dụng của bến cảng, andeven vẫn vẫn không có giải pháp. Nhờ sự giúp đỡ nào.

+0

tìm thấy viên ngọc này ở http://www.asp.net/ Thay đổi dự án ASP.NET MVC 4 thành mục tiêu 4.0 từ 4.5 không cập nhật tham chiếu assembly EntityFramework: Nếu bạn thay đổi dự án ASP.NET MVC 4 thành mục tiêu 4.0 sau khi nhắm mục tiêu 4.5, tham chiếu đến EntityFramwork lắp ráp sẽ vẫn trỏ đến phiên bản 4.5. Để khắc phục vấn đề này, cài đặt lại gói EntityFramework NuGet. – d4rklit3

Trả lời

1

Vì vậy, có vẻ như vấn đề là do tôi quay trở lại .NET 4 từ 4.5 và Entity không quay trở lại. Có vẻ như Entity 5 chỉ chạy trên .NET 4.5 và khi triển khai được mong đợi 4.3.1 nó có một DLL 5.0.0 và nó làm rối mọi thứ.

9

Bạn có quyền bắt đầu trong .NET 4.5 và quay trở lại gây ra vấn đề, đây là tài liệu chính thức về vấn đề này và liên kết.

Thay đổi một dự án ASP.NET MVC 4 để nhắm mục tiêu 4,0 từ 4.5 không cập nhật các tài liệu tham khảo lắp ráp EntityFramework: Nếu bạn thay đổi 4 dự án ASP.NET MVC để nhắm mục tiêu 4,0 sau khi nhắm mục tiêu 4,5 tham chiếu đến EntityFramwork assembly sẽ vẫn trỏ đến phiên bản 4.5. Để khắc phục vấn đề này cài đặt lại gói EntityFramework NuGet.

Cài đặt lại EntityFramework sau khi chuyển dự án sang .NET 4.0 đã thực hiện thủ thuật.

tham khảo: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815

Điều này xảy ra với tôi khi tôi biên soạn một dự án MVC RC trong .NET 4.0 và cố gắng để lưu trữ nó trong IIS trên máy chủ mà không có Visual Studio 2012 RC cài đặt.

(Lưu ý:. Cài đặt Visual Studio 2012 RC trên máy chủ cũng cố định vấn đề này, nhưng để tương thích với việc sửa chữa trên là tốt hơn nhiều)

Các vấn đề liên quan