2015-06-05 23 views
23

Tôi có một ứng dụng ASP.NET chạy tốt trên máy cục bộ của mình. Tôi vừa tải nó lên một máy chủ bằng cách sử dụng triển khai web. Tôi gặp phải lỗi sau khi tôi cố gắng xem trang web:Lỗi Owin với ứng dụng ASP.NET MVC

Đã xảy ra lỗi sau khi cố gắng tải ứng dụng. - Thuộc tính OwinStartup được phát hiện trong assembly 'Gators3' tham chiếu kiểu khởi động 'Gators3.Startup' xung đột với thuộc tính trong assembly 'MyFirstProject2' tham chiếu kiểu khởi động 'MyFirstProject2.Startup' vì chúng có cùng tên FriendlyName ''. Xóa hoặc đổi tên một trong các thuộc tính hoặc tham chiếu trực tiếp loại mong muốn. Để tắt tính năng phát hiện khởi động OWIN, hãy thêm ứng dụngĐặt tiền: Tự động khởi động với giá trị "false" trong web.config của bạn. Để chỉ định OWIN startup Assembly, Class hoặc Method, thêm appSetting owin: AppStartup với tên khởi động đầy đủ hoặc tên phương thức cấu hình trong web.config của bạn.

Tôi đã thử tìm kiếm toàn bộ giải pháp cho chuỗi "MyFirstProject2" nhưng không tìm ra bất kỳ thứ gì. Thông điệp đưa ra một vài gợi ý, nhưng không có ý kiến ​​nào có ý nghĩa với tôi. Tôi không biết cách "Xóa hoặc đổi tên một trong các thuộc tính hoặc tham chiếu loại mong muốn một cách trực tiếp" và tôi không thấy một địa điểm trong web.config để "thêm ứng dụngThiết lập owin: AppStartup với khởi động đầy đủ điều kiện lớp hoặc tên phương thức cấu hình trong web.config của bạn. "

Tôi tìm thấy this, nhưng tôi không hoàn toàn chắc chắn cách triển khai. Tôi cũng đã tìm thấy [assembly: OwinStartupAttribute(typeof(Gators3.Startup))] trong số Startup.cs của mình, nhưng không chắc chắn điều cần làm ở đó là gì.

+0

Có thể trùng lặp: http://stackoverflow.com/questions/21701297/error-when-renaming-asp-net-mvc-5-application –

Trả lời

49

Vấn đề là Gators3.dll và MyFirstProject2.dll nằm trong cùng thư mục (tôi đoán đó là thư mục bin trên máy chủ của bạn) và cả hai đều đang sử dụng phần mềm trung gian Owin. Nếu bạn không cần MyFirstProject2.dll thì cách dễ nhất là xóa cụm từ đó. Nếu bạn cần, nhưng không có Owin - hãy thêm dòng sau vào Web.config/app.config trong dự án MyFirstProject2 của bạn: <add key="owin:AutomaticAppStartup" value="False" />

Nếu bạn cần sử dụng Owin cho hai dự án có cấu hình tên thân thiện cho cả hai. dự án

  • Gators3:

Thay đổi Owin khởi động thuộc tính gì đó như:

attribute [assembly: OwinStartupAttribute("GatorsConfig", typeof(Gators3.Startup))] 

Và thêm sau dòng để web.config trong appSettings phần:

<add key="owin:appStartup" value="GatorsConfig" /> 
  • MyFirstProject2 pr oject:

Thay đổi Owin khởi động thuộc tính để một cái gì đó như:

attribute [assembly: OwinStartupAttribute("MyFirstProject2Config", typeof(MyFirstProject2.Startup))] 

Và thêm sau dòng để web.config trong appSettings phần:

<add key="owin:appStartup" value="MyFirstProject2Config" /> 
17

tôi đã cùng một vấn đề: loại bỏ tất cả mọi thứ trong thư mục bin và xây dựng lại giải pháp một mình làm việc cho tôi.Nhưng nó có thể được kết hợp với việc đổi tên thuộc tính assembly của bạn ở đầu lớp startup, cho nó một tên Firendly để giúp phân biệt cả hai tệp khởi động.

[assembly: OwinStartup("MyFriendlyNameForProject1",typeof(MyProject.Startup))] 
+4

Tự bảo đảm thư mục '/ bin' được làm sạch (= xóa tất cả các tệp), là chìa khóa cho tôi (thx). Đổi tên lắp ráp, "làm sạch" từ bên trong VS và xây dựng lại là không đủ, kể từ khi sạch sẽ không thể biết về dll di sản, kể từ khi vẫn còn có cùng một tên cũ –

11

rõ ràng thư mục bin của bạn và obj folder.Rebuild dự án một lần nữa và chạy :)

+1

Chỉ cần xóa thư mục bin đã không giúp một mình, tôi cũng phải xóa thư mục obj. cảm ơn –

4

Xóa bất cứ điều gì mà nói 'MyFirstProject2' từ thư mục bin của bạn và xây dựng lại các giải pháp, Nó sẽ làm việc.

1

Xảy ra khi bạn tham chiếu (do nhầm lẫn?) Một dự án có khởi động owin bên trong một dự án khác có khởi động owin. Fix - xóa các tài liệu tham khảo, bin, obj thư mục và xây dựng lại.

Các vấn đề liên quan