没有Owin的Asp.Net MVC 5?
Mvc 5似乎依赖于Owin,如果你想自己托管或在Mac上运行,那就太棒了。 但是我们假设我只想在IIS下运行,就像以前的版本一样,我对Owin提供的东西不感兴趣。 默认的“空白”mvc5模板使用owin和其他15个依赖项。 我已经尝试逐个删除软件包,但似乎网站不知道如何在不使用Owin的属性的情况下启动。 那么,如何在没有Owin的iis下获得ASP.net,mvc 5?
禁用Owin的简单方法是在web.config
文件中,在
部分添加:
要完全删除Owin,请右键单击您的项目,然后从菜单中单击Manage Nuget Packages
。 在Manage Nuget Packages
窗口的左侧,单击Installed Package
然后在搜索框类型Manage Nuget Packages
窗口右侧。
按以下顺序卸载软件包:
- microsoft.aspnet.identity.owin
- microsoft.owin.host.systemweb
- microsoft.owin.security.cookies
- microsoft.owin.security.facebook
- microsoft.owin.security.google
- microsoft.owin.security.microsoftaccount
- microsoft.owin.security.twitter
删除microsoft.owin.security.twitter
后自动删除其他owin软件包,如果你的机器上没有发生,则自行删除其他软件包。 然后删除此包:
- microsoft.aspnet.identity.entityframework
- microsoft.aspnet.identity.core
打开web.config
文件并从
删除这些部分:
删除项目根目录中的Startup.cs
文件。 打开App_Start folder
并删除IdentityConfig.cs
和Startup.Auth.cs
文件。 打开Controller folder
并删除AccountController.cs
和ManageController.cs
。 在Models folder
删除所有模型并在View Folder
删除Account Folder
和Manage folder
。
重新启动Visual Studio,然后运行该项目。 如果你收到这个错误:
尝试加载应用程序时发生以下错误。 – 找不到包含OwinStartupAttribute的程序集。 – 找不到包含Startup或[AssemblyName] .Startup类的程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup。 要指定OWIN启动程序集,类或方法,请在web.config中使用完全限定的启动类或配置方法名称添加appSetting owin:AppStartup。 你有两种解决方法:
- 打开
bin folder
,如果有任何Owin assembly
,则删除所有这些bin folder
- 或者在
部分打开web.config然后添加此
默认的mvc5模板使用Identity作为成员资格系统。 身份取决于Owin,这就是它被包含在项目中的原因(以及其他几个“可选”包)。 如果您创建一个新的空项目并手动安装包Microsoft.Aspnet.Mvc(使用命令Install-Package Microsoft.Aspnet.Mvc
),您可以看到没有依赖于Owin。
Obs:您还可以创建一个空项目,其中选中了“为MVC添加文件夹和核心参考”选项。
OWIN只是一个标准,它将ASP.net应用程序与IIS分离,因此应用程序可以自托管,以及其他好处,但它并不意味着您无法在IIS中托管它们。
我只是指定完整的路线,它适合我!
Project name: Users.Web Folders: App_Start Class name: IdentityConfig