2012-06-13 13 views
7

मुझे यह त्रुटि मिल रही है जब मैं क्लाउड वेबसाइट्स और क्लाउड होस्टेड सेवाओं दोनों पर अपनी वेब एपीआई प्रोजेक्ट को तैनात करने का प्रयास करता हूं Azure:Azure WebSites या Azure क्लाउड सर्विसेज पर एमवीसी 4 एपीआई [त्रुटि]: '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)"}" 

यहाँ संदेश है:

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

यह तब होता है जब मैं दूरस्थ साइट से मेरी एपीआई के किसी भी हिट करने के लिए प्रयास करें। मुझे पता है कि यह मेरी 500 त्रुटियों में नहीं है क्योंकि मेरे कुछ एपीआई उन्हें क्या नहीं होने के बावजूद फेंक देते हैं।

ध्यान देने योग्य एक बात और मुझे यकीन नहीं है कि इससे कुछ प्रभावित होगा या नहीं, मैंने इस परियोजना को .NET 4.5 पर लक्षित किया है, लेकिन फिर इसे 4.0 पर स्विच किया गया जब Azure वेब साइट्स ने कहा कि वे 4.5 का समर्थन नहीं करते हैं। एप्लिकेशन-बंदरगाह का उपयोग कर रहा http://support.appharbor.com/discussions/problems/4822-internal-server-error-500-mvc-4-web-api

कि पुरुष को छोड़कर

, andeven अभी भी वहाँ अभी भी कोई समाधान नहीं है:

मैं नहीं इस लिंक को छोड़कर इस बारे में कुछ भी पा सकते हैं। किसी भी मदद के लिए धन्यवाद।

+0

में इस मणि पाया http://www.asp.net/ श्वेतपत्र/एमवीसी 4-रिलीज-नोट 4.5 से 4.0 को लक्षित करने के लिए एएसपी.नेट एमवीसी 4 प्रोजेक्ट को बदलना एंटिटीफ्रेमवर्क असेंबली संदर्भ अपडेट नहीं करता है: यदि आप एंटीटीफ्रेमवर्क के संदर्भ 4.5 को लक्षित करने के बाद 4.0 को लक्षित करने के लिए एएसपी.नेट एमवीसी 4 प्रोजेक्ट को बदलते हैं विधानसभा अभी भी 4.5 संस्करण को इंगित करेगी। इस समस्या को ठीक करने के लिए EntityFramework NuGet पैकेज को पुनर्स्थापित करें। – d4rklit3

उत्तर

1

तो ऐसा लगता है कि समस्या मेरे द्वारा 4.5 से .NET 4 पर वापस रोलिंग और इकाई वापस रोलिंग नहीं हुई थी। ऐसा लगता है कि इकाई 5 केवल .NET 4.5 पर चलती है और जब तैनाती 4.3.1 की उम्मीद कर रही थी तो इसमें 5.0.0 डीएलएल था और यह सबकुछ खराब हो गया।

9

आप .NET 4.5 में शुरू करने और इस मुद्दे को हल करने के बारे में सही हैं, यहां इस मुद्दे और एक लिंक के बारे में आधिकारिक दस्तावेज है।

लक्षित करने के लिए एक ASP.NET MVC 4 परियोजना बदलने 4.0 4.5 से नहीं है अद्यतन EntityFramework विधानसभा संदर्भ: यदि आप एक ASP.NET MVC 4 लक्ष्यीकरण 4.5 के संदर्भ के बाद 4.0 लक्षित करने के लिए परियोजना को बदलते हैं EntityFramwork असेंबली अभी भी 4.5 संस्करण को इंगित करेगी। इस समस्या को ठीक करें EntityFramework NuGet पैकेज को पुनर्स्थापित करें।

.NET 4.0 के लिए परियोजना स्विच करने के बाद EntityFramework को पुनर्स्थापित करना चाल किया था।

संदर्भ: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815

यह जब मैं .NET 4.0 में एक MVC आर सी परियोजना संकलित और एक सर्वर है कि Visual Studio 2012 आर सी स्थापित नहीं था पर IIS में होस्ट करने की कोशिश की मुझे क्या हुआ।

(नोट:। Visual Studio 2012 आर सी सर्वर पर भी समस्या का समाधान हो, लेकिन पश्चगामी-संगतता के लिए स्थापित कर रहा है ऊपर फिक्स बेहतर है)