Saya telah menginstal Visual Studio 2013 dan ketika saya menjalankan aplikasi saya mendapatkan kesalahan di bawah ini.
Saya tidak tahu ke mana saya harus menginisialisasi objek ini.
Apa yang harus dilakukan?
Server Error in '/' Application.
The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.]
System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes() +101
System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) +63
System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) +107
System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +233
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +60
System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408
Ini untuk AlumCloud
c#
.net
asp.net-mvc-routing
Mengisi Stack adalah Apa yang Saya LAKUKAN
sumber
sumber
GlobalConfiguration.Configure(Action<HttpConfiguration> configurationCallback)
akan memanggil setelah configurationCallback.Jika Anda melakukannya di akhir Application_Start akan terlambat, karena WebApiConfig.Register telah dipanggil.
Cara terbaik untuk menyelesaikan ini adalah dengan menggunakan metode inisialisasi baru dengan mengganti di Global.asax:
oleh
sumber
GlobalConfiguration.Configure(config => new WebApiConfig().Register(config));
Saya benar-benar mendapatkan kesalahan ini ketika saya menggunakan Routing Atribut dalam WebApi saya.
Saya punya
dari pada
untuk rute saya dan mendapat kesalahan ini. Saya baru saja melewatkan braket keriting penutup. Setelah saya menambahkannya kembali, kesalahan ini tidak terjadi lagi.
sumber
Ini sudah tua, tetapi merupakan hasil pertama di google saat mencari kesalahan ini. Setelah menggali sedikit, saya bisa mengetahui apa yang sedang terjadi.
Artinya: jika Anda berasal dari proyek Mvc yang ada, yang harus Anda lakukan adalah:
ATAU
Menggali lebih dalam
HttpConfiguration.Configuration memiliki properti "Initializer" yang didefinisikan seperti ini:
HttpConfiguration.EnsureInitialized () menjalankan tindakan ini dan menetapkan _initialized menjadi true
HttpConfiguration.MapAttributeRoutes memanggil metode internal AttributeRoutingMapper.MapAttributeRoutes yang menetapkan HttpConfiguration.Initializer
GlobalConfiguration.Configure menjalankan EnsureInitialized segera setelah memohon tindakan Anda:
Jangan lupa, jika Anda berlari ke dinding, sumber untuk asp.net tersedia di http://aspnetwebstack.codeplex.com/SourceControl/latest
sumber
Saya memiliki masalah terkait. Terkadang menelepon
GlobalConfiguration.Configure
berkali-kali memicu kesalahan ini. Sebagai solusinya, saya telah meletakkan semua logika inisialisasi konfigurasi di satu tempat.sumber
Bagi saya, masalahnya adalah saya mencoba menggunakan parameter bernama untuk bidang string kueri di rute saya:
Bidang string kueri secara otomatis dipetakan ke parameter dan sebenarnya bukan bagian dari definisi rute. Ini bekerja:
sumber
Meskipun jawaban di atas berfungsi jika memetikan yang tidak diatur, dalam kasus saya hal ini sudah diatur. Apa yang berbeda adalah bahwa, untuk salah satu API yang saya tulis, saya telah mengawali rute dengan /. Contoh
. Mengubah ini menjadi
memperbaikinya untukku
sumber
HttpPrefix
dekorator dan kemudian untuk endpoint individu saya saya punya dekorator:[Route("/")]
. Dengan hanya melewatkan String kosong di rute memperbaiki masalah.JIKA KESALAHAN INI TAMPAKNYA DATANG "DI LUAR NEGERI" , yaitu aplikasi Anda berfungsi dengan baik untuk sementara waktu, tanyakan pada diri sendiri: Apakah saya menambahkan tindakan ke controller atau mengubah rute apa pun sebelum melihat kesalahan ini?
Jika jawabannya adalah ya (dan mungkin juga), Anda mungkin membuat kesalahan dalam prosesnya. Pemformatan yang salah, salin / tempel tindakan dan lupa untuk memastikan nama titik akhir unik, dll. Semuanya akan berakhir di sini. Saran yang dibuat kesalahan ini tentang cara mengatasinya dapat mengirim Anda menggonggong pohon yang salah.
sumber
Panggilan
sebelum
menyelesaikan eksekusi.
sumber
Saya mendapatkan kesalahan ini ketika versi Newtonsoft.Json berbeda di proyek utama saya dibandingkan dengan proyek pembantu
sumber
Satu biasanya mendapatkan pengecualian ini ketika templat rute di "Routing Atribut" tidak tepat.
Misalnya, saya dapat ini ketika saya menulis kode berikut:
Dalam sintaks kendala rute {parameter: kendala}, kendala secara default adalah tipe string . Tidak perlu menyebutkannya secara eksplisit.
sumber
Saya mulai mendapatkan kesalahan ini suatu hari. Setelah saya mengubah aplikasi untuk menelepon,
EnsureInitialized()
saya dapat melihat akar masalahnya.Saya memiliki atribut khusus, filter, pada tindakan. Kelas atribut itu memiliki perubahan besar yang dibuat dalam paket NuGet di mana ia tinggal.
Meskipun saya telah memperbarui kode dan semuanya dikompilasi, pekerja IIS lokal sedang memuat DLL lama dan tidak menemukan anggota kelas selama inisialisasi, membaca atribut pada tindakan dll.
Untuk beberapa alasan (mungkin karena pesanan / ketika penebangan kami diinisialisasi), kesalahan ini tidak dapat ditemukan, mungkin meninggalkan WebAPI dalam keadaan aneh, sampai saya menambahkan
EnsureInitialized()
yang menangkap pengecualian dan memunculkannya.Melakukan yang tepat
bin
danobj
bersih melalui skrip berguna menyelesaikannya.sumber
Dalam kasus saya, saya membuat layanan web di proyek A dan memulainya dari Proyek B dan saya mendapatkan kesalahan ini. Masalahnya adalah bahwa beberapa file .dll yang diperlukan oleh A di mana tidak ada dalam folder build-output-B.
sumber
Dalam kasus saya, saya menggunakan Entitas sebagai parameter tindakan saya bahwa 'Skema' hilang.
Atribut yang salah:
Benar :
sumber