Không tìm thấy lắp ráp nào có lỗi OwinStartupAttribute


87

Lỗi này

Đã xảy ra các lỗi sau khi cố gắng tải ứng dụng. - Không tìm thấy tập hợp nào chứa OwinStartupAttribute. - Không tìm thấy kiểu hoặc phương thức đã cho 'false'. Hãy thử chỉ định Assembly. Để tắt tính năng khám phá khởi động OWIN, hãy thêm appSetting owin: AutomaticAppStartup với giá trị "false" trong web.config của bạn. Để chỉ định Assembly, Class hoặc Method khởi động OWIN, hãy thêm appSetting owin: AppStartup với tên phương thức cấu hình hoặc lớp khởi động đủ điều kiện trong web.config của bạn.

xuất hiện trên màn hình của tôi trên trang lỗi xấu xí nhất từng được tạo ra trong lịch sử.

nhập mô tả hình ảnh ở đây

Ive đã cố gắng làm theo hướng dẫn trên trang bằng cách chèn owin: AutomaticAppStartup trong cấu hình.

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

Điều này không khắc phục được vấn đề. Bất kỳ đề xuất?


6
Thay vào đó, <add key="owin:AppStartup" value="false"></add>bạn có thể thử <add key="owin:AutomaticAppStartup" value="false"></add>và xem cách đó có hiệu quả không? Ngoài ra, một số liên kết để giúp đỡ: OWIN Startup Lớp DetectionOwin cung cấp lớp khởi động trong web.config (không phát hiện khởi động tự động)
KEYUR Patel

Đó là mẹo. Cũng cảm ơn cho các nguồn lực. Lòng biết ơn của tôi @KeyurPATEL.
NVA

2
Tôi nghĩ rằng bạn đang thiếu tệp startup.cs
Kurkula

2
Kurkula hoàn toàn đúng. Bạn đã không cài đặt hệ thống xác thực ASP.net chỉ để vứt bỏ nó khi khởi động. Bạn hoàn toàn thiếu tệp startup.cs ở gốc của dự án. Đặt mã này vào tệp .------------- using Microsoft.Owin; sử dụng Owin; [assembly: OwinStartupAttribute (typeof (YOURPROJECT.Startup))] không gian tên BẠNPROJECT {public part class Startup {public void Configuration (IAppBuilder app) {ConfigureAuth (app); }}}
Paras Parmar

Câu trả lời:


171

Thêm mã này vào web.configdưới <configuration>thẻ như thể hiện trong hình ảnh bên dưới. Lỗi của bạn sau đó sẽ biến mất.

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

Kiểm tra hình ảnh bên dưới


4
Đây là giải pháp, hoặc ít nhất giải pháp này đã khắc phục được sự cố của tôi. Vui lòng đánh dấu một câu trả lời như một giải pháp. Cái này nên ở đầu ...
Mason

1
Cảm ơn, Điều này đã hoạt động nhưng ai đó có thể cho tôi biết tôi đang mất gì bằng cách đặt giá trị cài đặt này thành sai không?
IKriKan

83

Tôi muốn loại bỏ OWIN trong dự án:

  1. Xóa các tham chiếu OWIN và gói Nuget khỏi dự án
  2. Làm sạch & xây dựng lại dự án
  3. Chạy ứng dụng

Sau đó, tôi gặp lỗi OWIN. Các bước này không hoạt động vì OWIN.dll vẫn còn trong thư mục bin / .

SỬA CHỮA:

  1. Xóa bin / thư mục theo cách thủ công
  2. Xây dựng lại dự án

12
lol - xóa bin và obj thư mục luôn là bản vá cho lỗi phụ thuộc lạ
matt.fc

4
Trước đó, tôi đã tải xuống và dùng thử nuget SignalR, đến lượt nó đã thêm vào nuget owin. Các gói đã bị xóa, nhưng tôi cũng phải xóa thư mục bin để nó hoạt động.
mortb

Đến đây sau khi cài đặt SignalR và hủy bỏ nỗ lực. Cảm ơn bạn.
John Gerdsen

Dễ dàng và nhanh chóng. Làm việc cho tôi
Dash

uninstall owin gói sẽ giúp cũng hay loại bỏ tất cả dlls có owin với họ từ tài liệu tham khảo sẽ giúp
Heemanshu Bhalla

23

Đối với những người muốn bắt đầu, <add key="owin:AutomaticAppStartup" value="false" />nó sẽ không hoạt động, nhưng những điều sau đây đã hiệu quả với tôi.

  1. nếu bạn có một lớp "Khởi động" trong tệp Startup.Auth, hãy tạo một lớp Khởi động một phần khác trong thư mục gốc của dự án của bạn.

  2. xác định một thuộc tính owinstartup hợp ngữ trỏ đến lớp đó

  3. tạo phương thức "Cấu hình"

  4. xây dựng lại ứng dụng của bạn

Bạn cũng có thể tạo phương thức "Cấu hình" và thêm thuộc tính assembly vào Startup.Auth, nhưng làm theo cách này cho phép bạn tách lớp Khởi động của mình bằng cách tận dụng phân tách định nghĩa lớp C #. Đọc thêm tại đây: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

Đây là tệp Startup.cs của tôi trông như thế nào:

using Microsoft.Owin;
using Owin;

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

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

Điều này đã làm việc cho tôi, tôi nhận ra rằng điều này xảy ra khi dự án có một dấu chấm trong tên của nó. Vì vậy, nếu không gian tên của nó giống như "không gian tên ProjectNameSpace.ApiRest" thì việc xác định một assembly như trong ví dụ của bạn sẽ khắc phục được sự cố.
karique


6

bạn có thể không có phương thức Cấu hình trong lớp mà bạn đã đề cập

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


3

Tôi gặp lỗi này vì có thêm khoảng trắng trong mã

Thay vì

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

Nó đã

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


3

Kiểm tra xem bạn đã tạo lớp Khởi động trong dự án của mình chưa. Đây là một ví dụ:

using Microsoft.Owin;
using Owin;

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

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

Để tận dụng ASP.net Identity. Đây là giải pháp.
Paras Parmar

2

chỉ thay thế

        using (WebApp.Start(url))

với

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

đã giải quyết vấn đề của tôi. Lớp có tên Khởi động đã được triển khai. như đã đề cập ở trên bởi @robthedev



1

Kiểm tra xem bạn đã chọn đúng dự án khởi động chưa. Tôi đã có một dự án api web khi khởi động. Điều đó đã tạo ra lỗi này.


1

Tôi biết bài đăng này đã cũ nhưng đề phòng ai đó đang tìm lỗi tương tự, hãy thử thêm

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

sau thẻ <appSettings>

và nếu sau đó lỗi tiếp theo xuất hiện:

Lỗi HTTP 401.0 - Thông báo lỗi trái phép

thêm mã tiếp theo sau thẻ, <system.web>nó có thể ở đầu

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

Trong trường hợp của tôi là:

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


0

Tôi đã xóa tất cả các tệp DLL khỏi chi nhánh không hoạt động, sau đó tôi sao chép tất cả các DDls từ chi nhánh của tôi đang hoạt động sang chi nhánh của tôi mà không hoạt động. Điều này đã giải quyết vấn đề.


0

chỉ cần dán mã này <add key="owin:AutomaticAppStartup" value="false" /> vào Web.config Không Trong web.config có hai webconfig nên hãy chắc chắn rằng nó sẽ được dán vào Web.Config


0

nếu bạn muốn sử dụng signalr, bạn phải thêm Lớp startup.cs vào dự án của mình

Nhấp chuột phải vào bạn dự án Sau đó thêm mục mới và chọn lớp khởi động OWIN

sau đó bên trong Phương pháp cấu hình Thêm mã bên dưới

app.MapSignalR();

Tôi hy vọng nó sẽ hữu ích cho bạn


0

Thêm lớp Startup.cs vào thư mục gốc của dự án với mã tiếp theo:

using Microsoft.Owin;
using Owin;

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

0

Nếu triển khai tới Azure và bạn gặp lỗi này. Chỉ cần xóa tất cả các tệp trên trang web (sao lưu bất kỳ web.config, appsettings.json hoặc bất kỳ tệp nào bạn không muốn mất) và triển khai lại. Có một số tệp dll còn sót lại không nên có trên trang web, điều này khiến cổng Azure nghĩ rằng nó cần sử dụng OWIN.


0

Thêm mã bên dưới vào tệp web.config của bạn rồi chạy dự án ...

    <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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.