Rakitan tidak ditemukan yang mengandung OwinStartupAttribute Error


88

Kesalahan ini

Kesalahan berikut terjadi saat mencoba memuat aplikasi. - Tidak ditemukan perakitan yang mengandung OwinStartupAttribute. - Jenis atau metode yang diberikan 'false' tidak ditemukan. Coba tentukan Majelis. Untuk menonaktifkan penemuan startup OWIN, tambahkan appSetting owin: AutomaticAppStartup dengan nilai "false" di web.config Anda. Untuk menentukan OWIN startup Assembly, Class, atau Method, tambahkan appSetting owin: AppStartup dengan kelas startup yang memenuhi syarat atau nama metode konfigurasi di web.config Anda.

muncul di layar saya di halaman kesalahan paling jelek yang pernah dibuat dalam sejarah.

masukkan deskripsi gambar di sini

Saya sudah mencoba mengikuti instruksi di halaman dengan memasukkan owin: AutomaticAppStartup di konfigurasi.

 <appSettings >
    <add key="owin:AppStartup" value="false"></add>
        </appSettings>

ini tidak menyelesaikan masalah. Ada saran?


6
Daripada <add key="owin:AppStartup" value="false"></add>Anda dapat mencoba <add key="owin:AutomaticAppStartup" value="false"></add>dan melihat apakah itu berhasil? Juga, beberapa tautan untuk membantu: OWIN Startup Class Detection dan Owin menyediakan kelas startup di web.config (tidak ada penemuan startup otomatis)
Keyur PATEL

Itu berhasil. Juga terima kasih atas sumber dayanya. @KurPEL.
NVA

2
Saya pikir Anda kehilangan file startup.cs
Kurkula

2
Kurkula benar sekali. Anda tidak menginstal sistem autentikasi ASP.net hanya untuk membuangnya saat memulai. Anda benar-benar kehilangan file startup.cs di root proyek. Letakkan kode ini di file .------------- menggunakan Microsoft.Owin; menggunakan Owin; [assembly: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] namespace YOURPROJECT {Startup kelas sebagian publik {Public void Configuration (aplikasi IAppBuilder) {ConfigureAuth (app); }}}
Paras Parmar

Jawaban:


172

Tambahkan kode ini di web.configbawah <configuration>tag seperti yang ditunjukkan pada gambar di bawah ini. Kesalahan Anda kemudian harus hilang.

<configuration>
  <appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
  </appSettings>
  ...
</configuration>

Periksa Gambar Di Bawah


4
Ini adalah solusinya, atau setidaknya solusi ini memperbaiki masalah saya. Harap tandai jawaban sebagai solusi. Yang ini seharusnya ada di atas ...
Mason

1
Terima kasih, Ini berhasil tetapi dapatkah seseorang memberi tahu saya apa yang saya kalah dengan membuat nilai pengaturan ini menjadi false?
IKriKan

84

Saya ingin menyingkirkan OWIN dalam proyek:

  1. Hapus referensi OWIN dan paket Nuget dari proyek
  2. Proyek Bersihkan & Bangun Kembali
  3. Jalankan aplikasi

Lalu saya mendapat kesalahan OWIN. Langkah-langkah ini tidak berhasil, karena OWIN.dll masih dalam direktori bin / .

MEMPERBAIKI:

  1. Hapus bin / direktori secara manual
  2. Buat ulang proyek

13
lol - menghapus folder bin dan obj selalu merupakan perbaikan untuk kesalahan ketergantungan yang aneh
matt.fc

4
Saya sebelumnya telah mengunduh dan mencoba nuget SignalR, yang pada gilirannya telah menambahkan nuget owin. Paket-paketnya telah dihapus, tetapi saya juga harus menghapus folder bin untuk membuatnya berfungsi.
mortb

Datang ke sini setelah menginstal SignalR dan membatalkan upaya tersebut. Terima kasih.
John Gerdsen

Mudah dan cepat. Bekerja untuk saya
Dash

uninstall paket owin akan membantu juga atau menghapus semua dll yang memiliki owin dengan mereka dari referensi akan membantu
Heemanshu Bhalla

24

Bagi mereka yang ingin memulai, <add key="owin:AutomaticAppStartup" value="false" />tidak akan berhasil, tetapi yang berikut berhasil untuk saya.

  1. jika Anda memiliki kelas "Startup" parsial di file Startup.Auth, buat kelas Startup parsial lainnya di root proyek Anda.

  2. mendefinisikan atribut owinstartup assembly yang menunjuk ke kelas itu

  3. buat metode "Konfigurasi"

  4. membangun kembali aplikasi Anda

Anda juga dapat membuat metode "Konfigurasi", dan menambahkan atribut assembly ke Startup.Auth, tetapi melakukannya dengan cara ini memungkinkan Anda untuk memisahkan kelas Startup dengan memanfaatkan pemisahan definisi kelas C #. Baca selengkapnya di sini: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/p Partial-classes- and- methods

Seperti inilah tampilan file Startup.cs saya:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))]

namespace ProjectNameSpace
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Ini berhasil untuk saya, saya menyadari bahwa ini terjadi ketika proyek memiliki titik di namanya. Jadi jika namespace-nya seperti "namespace ProjectNameSpace.ApiRest" kemudian menentukan rakitan seperti dalam contoh Anda memperbaiki masalah.
karique


6

Anda mungkin tidak memiliki metode Konfigurasi di kelas yang Anda sebutkan

<appSettings>
<add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>


3

Saya mendapat kesalahan ini karena ada ruang putih ekstra di kode

Dari pada

<add key="owin:AutomaticAppStartup" value="false" />

Dulu

<add key="owin:AutomaticAppStartup " value="false" />


3

Periksa apakah Anda memiliki kelas Startup yang dibuat dalam proyek Anda. Ini contohnya:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof({project_name}.Startup))]

namespace AuctionPortal
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Untuk memanfaatkan Identitas ASP.net. Inilah solusinya.
Paras Parmar

2

hanya mengganti

        using (WebApp.Start(url))

dengan

        using (WebApp.Start<Startup>(url))

memecahkan masalah saya. Kelas bernama Startup sudah diimplementasikan. seperti yang disebutkan di atas oleh @robthedev


2

Tambahkan kunci berikut di Web.config akan menghapus kode

<appSettings>

  <add key="owin:AutomaticAppStartup" value="false" /> 
</appSettings>

1

Pastikan Anda telah memilih proyek startup yang benar. Saya memiliki proyek api web sebagai startup. Itu menghasilkan kesalahan ini.


1

Saya tahu posting ini sudah tua tetapi untuk berjaga-jaga jika seseorang mencari kesalahan yang sama, coba tambahkan

<add key="owin:AutomaticAppStartup" value="false"></add>

setelah tag <appSettings>

dan jika setelah itu muncul kesalahan berikutnya:

HTTP Error 401.0 - Pesan kesalahan tidak sah

tambahkan kode berikutnya setelah tag <system.web>itu bisa di awal

<authentication mode="Forms"> <forms loginUrl="~/YourFolderName/yourFileName" timeout="1" /> </authentication>

Dalam kasus saya adalah:

<authentication mode="Forms"> <forms loginUrl="~/Login/Index" timeout="1" /> </authentication>


0

Saya menghapus semua DLL dari cabang yang tidak berfungsi, lalu saya menyalin semua DDls dari cabang saya yang berfungsi ke cabang saya yang tidak berfungsi. Ini menyelesaikan masalah.


0

paste saja kode ini <add key="owin:AutomaticAppStartup" value="false" /> di Web.config Bukan Di web.config ada dua webconfig jadi pastikan sudah paste di Web.Config


0

jika Anda ingin menggunakan signalr Anda harus menambahkan Kelas startup.cs dalam proyek Anda

Klik kanan Dalam Proyek Anda Kemudian Tambahkan Item Baru Dan Pilih Kelas Startup OWIN

lalu di dalam Metode Konfigurasi Tambahkan Kode Di Bawah

app.MapSignalR();

Semoga bermanfaat bagi Anda


0

Tambahkan kelas Startup.cs ke root proyek dengan kode berikutnya:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(ProjectName.Startup))]
namespace ProjectName
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

0

Jika menerapkan ke Azure dan Anda mendapatkan kesalahan ini. Cukup hapus semua file di situs (buat cadangan web.config, appsettings.json, atau apa pun yang tidak ingin Anda lepas) dan terapkan lagi. Ada beberapa file dll yang tersisa yang seharusnya tidak ada di situs, sehingga portal Azure merasa perlu menggunakan OWIN.


0

Tambahkan kode di bawah ini ke file web.config Anda kemudian jalankan proyek ...

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
    </dependentAssembly>
    </runtime>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.