Saya bekerja di ciri minggu lepas yang akan menambah beberapa acara penerima untuk contoh senarai khusus. (Saya blog sedikit tentang senarai penerima di sini).
Menggunakan baris arahan, Saya boleh memasang ciri dengan tiada kesilapan (tetapi lihat di bawah untuk kesilapan yang tersembunyi). Bilakah saya cuba untuk menggunakan ciri-ciri di laman web ini, MOSS diadukan "FileNotFoundException" kesilapan. Entri blog ini menerangkan bagaimana saya menyelesaikan.
Ini adalah kesalahan yang MOSS menunjukkan saya di pelayar web:
Ciri-ciri ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ tidak dapat dipasang kerana beban sekiranya penerima perhimpunan "xyzzyFeatureReceiver_0" gagal: System.IO.FileNotFoundException: Tidak dapat memuatkan fail atau perhimpunan ' xyzzyFeatureReceiver_0’ atau salah satu daripada kebergantungan yang. Sistem tidak dapat mencari fail yang ditentukan.
Nama fail: ' xyzzyFeatureReceiver_0’
pada System.Reflection.Assembly.nLoad(Nama fail AssemblyName, Rentetan pangkalan kod, Keterangan assemblySecurity, Perhimpunan locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
pada System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Keterangan assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
pada System.Reflection.Assembly.InternalLoad(Tali assemblyString, Keterangan assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
pada System.Reflection.Assembly.Load(Tali assemblyString)
pada Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Perhimpunan mengikat pembalakan dipadam OFF.
Bagi membolehkan perhimpunan dilema kegagalan pembalakan, set nilai daftaran [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) kepada 1.
Nota: Terdapat beberapa hukuman prestasi yang dikaitkan dengan perhimpunan dilema kegagalan pembalakan.
Untuk mematikan ciri ini, mengalih keluar nilai daftaran [HKLMSoftwareMicrosoftFusion!EnableLog].
Saya tahu bagaimana untuk sengaja menyebabkan kesalahan itu: Jangan pasang Dewan di GAC dalam. Tetapi, ianya pada GAC dalam. Saya biasanya memasang perhimpunan ke GAC tersebut dengan menyeret mereka ke dalam p:\folder windowsassembly menggunakan windows explorer. Saya tidak pernah berasa 100% selesa melakukan perkara itu kerana saya selalu fikir gacutil itu wujud atas sebab-sebab … Jadi saya cuba yang. Ia dibuat tidak ada perbezaan.
Saya mencari di internet dan mendapati catatan ini: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
Poster yang berlaku untuk menggunakan bit akar sama kod (daripada buku dalam WSS daripada senarai ini) Jadi itu adalah tanda-tanda harapan. Walau bagaimanapun, cadangan untuk menghias Dewan dengan satu [Perhimpunan: ] arahan tidak masuk akal kepada saya. Saya cuba juga dan saya adalah betul. Ia dibuat tidak ada perbezaan.
Kemudian saya menyedari bahawa saya kelas definisi adalah tidak awam. Aku membuat awam dan yang membuat perbezaan tiada.
Seterusnya, Saya pergi ke masalah membolehkan "perhimpunan dilema kegagalan log" (berikutan arahan yang tepat dan berguna disediakan) dan ini adalah di mana perkara yang mula dapat menarik. Log itu menunjukkan saya runtime sedang mencari di mana-mana pelayan itu untuk perhimpunan saya. Walaupun kelihatan untuk mencari untuknya dalam perubatan saya Kabinet. Tetapi … Ia tidak mencari untuknya di GAC dalam.
I memakai jaket musim sejuk saya dan pergi mencari di internet sekali lagi dan mendapati bahawa seseorang yang mempunyai masalah ini terlalu. Perbincangan panjang dalam posting peters off ke dalam apa-apa dan saya tidak dapat mencari penyelesaian.
Saya masuk kedalam Dewan saya salah satu tempat log mendakwa ia sedang mencari dan saya membuat sedikit lebih banyak kemajuan. Saya berasa ganjaran dengan ralat yang baru dalam pelayar apabila saya cuba untuk mengaktifkan ciri-ciri:
Gagal untuk mencipta objek penerima mempunyai pemasangan "xyzzyFeatureReceiver_0", Taip "Conchango.xyzzyFeatureReceiver" bagi ciri-ciri b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Nilai tidak boleh batal.
Nama parameter: Jenis
pada System.Activator.CreateInstance(Jenis jenis, Boolean nonPublic)
pada System.Activator.CreateInstance(Jenis jenis)
pada Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Masa untuk satu perjalanan terakhir ke Internet dalam!
Buat masa ini saya mengetahui, cukup predictably, MOSS isu ralat ini kerana perhimpunan tidak di GAC.
Saya ingin mendapatkan sesuatu yang positif ini dan cuba untuk merasa sedikit bangga bahawa saya telah dicipta dalam Membawa daripada perhimpunan MSIL, tetapi ia tidak berfungsi. Saya hanya dataran marah. Saya mendapati diri saya muttering "ayam atau telur" di bawah nafas saya.
Saya akhirnya membuat keputusan untuk punt. Saya mencipta sebuah projek baru dan copy/paste kod dari projek incredible-cloaked-from-the-GAC-assembly-kerja ke atas projek ini baru. (Saya mencari bendera membina sesuatu seperti "Sembunyikan dari perhimpunan yang mengikat jika dipasang di GAC yang dipanggil" tetapi tidak dapat mencari salah satu).
Aku memasang ciri-ciri dan mengaktifkannya dan … Ia berfungsi! Jadi, selepas semua itu, Saya terpaksa pada dasarnya ' but semula’ Projek saya. Ini adalah satu lagi sebab kenapa saya benci komputer.
Saya pula belajar sesuatu yang berguna daripada ini. Saya telah memasang ciri-ciri yang menggunakan baris arahan stsadm sepanjang hari dan telah menggunakan yang "-memaksa" pilihan daripada tabiat. Sebab-sebab tertentu, Saya tidak menggunakan - pasukan pilihan apabila saya dipasang projek baru. Kali ini, Saya benar-benar, benar-benar lupa untuk menyalin projek ini baru perhimpunan ke GAC dalam. Hasilnya, Saya menerima bahawa "FielNotFoundException" kesilapan. Kali ini, Saya mendapatkannya dari stsadm, bukan ketika saya cuba untuk mengaktifkan ciri tersebut melalui pelayar web. Jadi, -Tentera sebenarnya memainkan dua watak. Ia membolehkan anda untuk memasang semula ciri-ciri yang sedia ada. Ia juga membolehkan anda untuk memasang ciri kereta yang tidak dapat bekerja di runtime dengan ralat. Ia mungkin berkata sebanyak mungkin dalam bantuan di suatu tempat tetapi saya tidak pernah melihat.
</akhir>