Saya memiliki kode konfigurasi OwinStartup yang bekerja dengan sempurna dan kemudian berhenti bekerja. Sayangnya saya tidak yakin persis apa yang saya lakukan untuk menghentikannya dan saya mengalami kesulitan untuk mengetahuinya.
Untuk memastikan saya memiliki dasar-dasar yang dicakup, saya menggandakan untuk memastikan saya memiliki
[assembly:OwinStartup(typeof(WebApplication.Startup))]
atribut ditugaskan dengan benar dan memastikan bahwa saya tidak memiliki pengaturan aplikasi untuk owin: AutomaticAppStartup yang disetel ke false, jadi saya membuat satu set ke true agar aman karena tidak ada apa pun di sana sebelumnya.
<add key="owin:AutomaticAppStartup" value="true" />
Saya juga mencoba secara khusus memanggil pengaturan aplikasi:
<add key="owin:appStartup" value="WebApplication.Startup" />
Sebelum berhenti berfungsi, saya meningkatkan paket Microsoft.Owin.Security NuGet ke 2.0.2, jadi saya mencoba mengembalikannya ke 2.0.1 (itu menyebalkan) tetapi tidak mengubah apa pun. Saya memiliki WebActivator yang diinstal pada proyek dan saya menggunakannya untuk mem-bootstrap hal-hal lain, tetapi saya telah mengujinya pada template WebApplication yang baru dan berfungsi di sana sehingga saya tidak berpikir itu penyebabnya.
Saya juga mencoba menghapus kelas Startup saya dan menggunakan Visual Studio untuk menambahkan yang baru menggunakan tipe OWIN Startup Class di Add New Item dan itu tidak dipanggil juga. Selanjutnya saya mencoba menambahkan kelas Startup kedua karena saya tahu itu akan melempar pengecualian jika ada lebih dari satu atribut OwinStartup yang ditentukan, tetapi tidak melempar pengecualian di sana.
Tidak yakin harus mencoba apa lagi. Adakah pikiran?
Memperbarui
Ternyata Resharper menghapus referensi ke Microsoft.Owin.Host.SystemWeb ketika saya menggunakannya untuk menghapus referensi yang tidak digunakan.
sumber
Jawaban:
Pastikan Anda telah menginstal
Microsoft.Owin.Host.SystemWeb
paket di proyek. Paket ini diperlukan untuk deteksi startup di aplikasi yang di-host IIS. Untuk informasi lebih lanjut, Anda dapat merujuk ke artikel ini .sumber
Startup.Configuration(IAppBuilder)
?Jika Anda telah memutakhirkan dari versi MVC yang lebih lama, pastikan Anda tidak memilikinya
di Anda
web.config
. Ini akan menekan memanggil logika startup.Alih-alih mengubahnya menjadi
true
Saya menyadari Anda sudah menyebutkan ini, tetapi kadang-kadang orang (seperti saya) tidak membaca seluruh pertanyaan dan hanya melompat ke jawabannya ...
Di suatu tempat di sepanjang garis - ketika saya meningkatkan ke MVC 5 ini ditambahkan dan saya tidak pernah melihatnya sampai hari ini.
sumber
Jawaban alternatif untuk masalah awal yang dibahas - Owin "tidak menembak." Dalam kasus saya, saya menghabiskan berjam-jam berpikir itu tidak menembak karena tidak dapat menetapkan breakpoint di dalamnya.
Saat men-debug startup OWIN di studio visual
IIS Express - Menjalankan "F5" akan merusak kode startup OWIN
IIS - Menjalankan "F5" tidak akan pecah sampai setelah kode OWIN (dan global.asax) dimuat. Jika Anda melampirkan ke W3P.exe Anda akan dapat melangkah ke dalamnya.
sumber
Jika Anda mengalami masalah debug kode di
Startup
kelas, saya juga punya masalah ini - atau saya pikir saya punya. Kode telah diaktifkan tetapi saya percaya itu terjadi sebelum debugger telah terpasang sehingga Anda tidak dapat menetapkan breakpoint pada kode dan melihat apa yang terjadi.Anda bisa membuktikan ini dengan melemparkan pengecualian dalam
Configuration
metodeStartup
kelas.sumber
TIPS MENGUNDANG
Jika debugging tidak berfungsi, coba gunakan IIS Express atau coba metode di bawah ini untuk IIS lokal
Menggunakan IIS lokal
Untuk beberapa alasan metode ini memungkinkan debugging metode ini:
Kiat ekstra
Mungkin melakukan ini akan membuka cache:
Di web.config tambahkan atribut optimCompilations dengan nilai yang salah
<kompilasi debug = "true" ... optimCompilations = "false">
Jalankan situs
sumber
optimizeCompilations="false"
bekerja untuk sayaSaya punya masalah serupa dengan ini dan membersihkan File ASP.NET Sementara memperbaikinya. Semoga ini bisa membantu seseorang.
sumber
Temporary ASP.NET Files
konten folder dan Owin startup dipanggil.Saya memiliki masalah yang sama. Paket Microsoft.Owin.Host.SystemWeb diinstal tetapi selama instalasi NuGet tidak dapat menambahkan dll sebagai referensi karena beberapa alasan. Pastikan proyek Anda memiliki referensi itu. Jika tidak, Anda dapat mencoba menginstal ulang:
Saya memiliki kesalahan seperti di bawah ini pada instal ulang tetapi entah bagaimana itu berhasil:
sumber
Dalam kasus saya, kumpulan aplikasi IIS tidak diatur ke v4. Itu v2.
Mengubah AppPool ke v4 dan semuanya baik-baik saja.
sumber
Saya memiliki masalah yang sama ketika saya menambahkan Owin ke proyek web yang ada. Saya akhirnya menemukan masalah karena hal berikut dalam file web.config.
Majelis hapus = "*" yang menyebabkan masalah. Ketika saya menghapus baris ini, kode startup Owin dijalankan. Saya akhirnya mengubahnya menjadi yang berikut dan itu bekerja dengan sempurna
sumber
Dalam kasus saya, jalur output situs web saya diubah oleh seseorang, IIS Express bahkan tidak memuat OWIN, dan kelas pengaturan tidak akan mengenai program. Setelah saya mengatur jalur output sebagai "bin \", ia bekerja dengan baik.
sumber
Dalam kasus saya paket Microsoft.Owin.Host.SystemWeb ini hadir dalam proyek ini.
Namun dua tag di bawah ini tidak ada di web.config.
setelah menambahkannya berfungsi dengan baik.
sumber
Dalam kasus saya, web.config saya punya
Untuk memaksanya jatuh kembali ke Owin, aku membutuhkannya
sumber
Saya mengacaukan banyak saran di posting ini.
Saya memiliki yang berikut tetapi masih tidak bisa mendarat di break point. Melempar pengecualian membuktikan kode itu dimasukkan.
Akhirnya karena putus asa saya melihat properti project->, dan kemudian di bawah bagian WEB saya juga memeriksa kotak centang NATIVE CODE (ASP.NET harus sudah diperiksa).
Itu akhirnya memperbaikinya untuk saya.
Catatan: Saya menggunakan Visual Studio 2017 Professional.
sumber
Saya tidak yakin apakah ini masih akan membantu seseorang, tetapi saya sudah melakukan semua solusi di atas (dan dari beberapa posting lainnya) tidak berhasil.
Apa yang memperbaiki masalah di ujung saya adalah meletakkan backslash ke akhir nilai RedirectUri di web.config (gila, saya tahu!). RedirectUri adalah parameter di UseOpenIdConnectAuthentication.
Jadi, alih-alih:
Melakukan hal ini:
Dan memperbarui URL Balas di Pengaturan Aplikasi Azure juga.
Entah bagaimana itu membuat Startup berjalan seperti yang diharapkan (mungkin membersihkan beberapa cache), dan breakpoints sekarang menyala.
FYI. Saya memodelkan kode saya dari sini: https://github.com/microsoftgraph/aspnet-connect-sample
sumber
Setelah mengkonversi perpustakaan kelas ke Proyek Aplikasi Web , saya berlari ke ini dan menjadi keras kepala. Ternyata, di
.csProj
file saya , saya punya ini:OutputPath
menjadi adilbin\
.sumber
Bagi saya itu karena mereka tidak berada dalam namespace yang sama. Setelah saya menghapus AppStart saya dari "project.Startup.AppStart" dan membiarkan keduanya Startup.cs dan Startup.Auth.cs dengan namespace "project.Startup", semuanya kembali berfungsi dengan sempurna.
Saya harap ini membantu!
sumber
Jika Anda melihat masalah ini dengan hosting IIS, tetapi tidak ketika debugging F5, coba buat aplikasi baru di IIS.
Ini memperbaikinya untuk saya. (windows 10) Pada akhirnya saya menghapus aplikasi IIS "buruk" dan menciptakan kembali yang identik dengan nama yang sama.
sumber
Saya pikir apa yang beberapa orang coba dapatkan di atas adalah bahwa jika Anda ingin membuat server OWIN Anda secara "hidup", Anda akan memanggil sesuatu seperti ini:
Setelah Anda melakukan panggilan ini, Anda akan melihat panggilan ke StartupMethod () menyala di debugger
sumber
Saya menemukan artikel berikut ini sangat membantu:
https://weblog.west-wind.com/posts/2015/Apr/29/Adding-minimal-OWIN-Identity-Authentication-to-an-Existing-ASPNET-MVC-Application#MinimalCodeSummary
Dalam kasus saya, saya harus menetapkan yang berikut sebelum autentikasi Owin berfungsi sebagai pengganti autentikasi windows:
sumber
Ini bekerja untuk saya:
sumber
Pertama tambahkan OWIN Auth Class dan kemudian aktifkan OWIN: AutomaticAppStartup kunci di web.config Anda suka Sekarang akan menyala
sumber