2015-07-27 51 views
18

Mvc 5 dường như phụ thuộc vào Owin, rất tuyệt nếu bạn muốn tự lưu trữ hoặc chạy trên máy Mac. Nhưng giả sử tôi chỉ muốn chạy dưới IIS giống như các phiên bản trước và tôi không quan tâm đến những gì Owin cung cấp. Mẫu mvc5 "trống" mặc định sử dụng owin và 15 phụ thuộc khác. Tôi đã thử gỡ bỏ từng gói một nhưng có vẻ như trang web không biết cách bắt đầu mà không sử dụng thuộc tính từ Owin. Vì vậy, làm thế nào để tôi nhận được chỉ ASP.net, mvc 5, theo iis mà không có Owin?Asp.Net MVC 5 không có Owin?

+0

Số câu hỏi của bạn là "Làm cách nào để chạy Asp.Net MVC 5 mà không có khung công tác Asp.Net vNext". – Aron

+2

@Aron Trừ khi Owin bây giờ là một phần không thể tách rời của Asp.Net và không thể được sử dụng mà không có nó, không, đó không phải là câu hỏi của tôi. – Andy

Trả lời

30

Cách đơn giản để vô hiệu hóa Owin là trong web.config tập tin và trong <appSettings> phần thêm này:

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

Để loại bỏ Owin nhấp chuột hoàn toàn đúng về dự án của bạn và từ menu chuột trên Manage Nuget Packages. ở bên trái của Manage Nuget Packages, hãy nhấp vào Installed Package sau đó ở bên phải cửa sổ trong hộp tìm kiếm loại owin.

enter image description here gói gỡ bỏ cài đặt theo thứ tự:

  • microsoft.aspnet.identity.owin
  • microsoft.owin.host.systemweb
  • microsoft.owin.security.cookies
  • microsoft. owin.security.facebook
  • microsoft.owin.security.google
  • microsoft.owin.securit y.microsoftaccount
  • microsoft.owin.security.twitter

và sau khi gỡ bỏ gói microsoft.owin.security.twitter owin khác gỡ bỏ tự động và nếu nó không xảy ra trên máy tính của bạn loại bỏ những người khác bằng chính mình. sau đó loại bỏ các gói này:

  • microsoft.aspnet.identity.entityframework
  • microsoft.aspnet.identity.core

mở web.config tập tin và loại bỏ các phần từ <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">:

<dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 

Xóa Startup.cs tệp trong thư mục gốc của dự án. mở App_Start folder và xóa các tệp IdentityConfig.csStartup.Auth.cs.mở Controller folder và xóa AccountController.csManageController.cs. trong Models folder Xóa tất cả Kiểu máy và trong View Folder Xóa Account FolderManage folder.

Khởi động lại Visual Studio và sau đó chạy dự án. nếu bạn nhận được lỗi này:

The following errors occurred while attempting to load the app. - No assembly found containing an OwinStartupAttribute. - No assembly found containing a Startup or [AssemblyName].Startup class. To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config. To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config. you have two ways to solve it:

  1. mở bin folder và nếu có bất kỳ Owin assembly, xóa tất cả trong số họ
  2. Hoặc web.config mở trong <appSettings> phần sau đó thêm này <add key="owin:AutomaticAppStartup" value="false" />
+0

Ah, tôi nghĩ rằng tôi đã bỏ lỡ bước cuối cùng, thêm 'owin: AutomaticAppStartup'. Tôi sẽ cung cấp cho một shot và báo cáo lại. – Andy

1

OWIN chỉ là một tiêu chuẩn, tách riêng các ứng dụng ASP.net khỏi IIS, do đó các ứng dụng có thể tự lưu trữ, trong số các lợi ích khác, nhưng nó không có nghĩa là bạn không thể lưu trữ chúng trong IIS.

+1

Tôi biết điều đó, nhưng tôi không muốn tất cả các phụ thuộc mang lại, do đó câu hỏi của tôi (mà điều này không trả lời). – Andy

+0

@Andy Bạn muốn loại bỏ những phụ thuộc nào. Một phần của vNext là khung được đưa vào thông qua nuget. Bạn đang cố gắng loại bỏ asp.net? http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx – Aron

+0

@Aron Không, tôi không cố gắng loại bỏ Asp.Net, chỉ Owin. – Andy

3

Mẫu mvc5 mặc định sử dụng Danh tính làm hệ thống thành viên. Danh tính phụ thuộc vào Owin vì vậy đó là lý do nó được bao gồm trong dự án (với một số gói 'tùy chọn' khác). Nếu bạn tạo một dự án trống mới và cài đặt thủ công gói Microsoft.Aspnet.Mvc (với lệnh Install-Package Microsoft.Aspnet.Mvc), bạn có thể thấy không có sự phụ thuộc vào Owin.

Obs: Bạn cũng có thể tạo một dự án trống với tùy chọn 'Thêm thư mục và tham chiếu cốt lõi cho MVC' được chọn.

-1

tôi chỉ cần xác định lộ trình hoàn chỉnh và nó hoạt động cho tôi !!

Project name: Users.Web 
Folders: App_Start 
Class name: IdentityConfig 

<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" /> 
Các vấn đề liên quan