没有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.csStartup.Auth.cs文件。 打开Controller folder并删除AccountController.csManageController.cs 。 在Models folder删除所有模型并在View Folder删除Account FolderManage folder

重新启动Visual Studio,然后运行该项目。 如果你收到这个错误:

尝试加载应用程序时发生以下错误。 – 找不到包含OwinStartupAttribute的程序集。 – 找不到包含Startup或[AssemblyName] .Startup类的程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup。 要指定OWIN启动程序集,类或方法,请在web.config中使用完全限定的启动类或配置方法名称添加appSetting owin:AppStartup。 你有两种解决方法:

  1. 打开bin folder ,如果有任何Owin assembly ,则删除所有这些bin folder
  2. 或者在部分打开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