Подтвердить что ты не робот

Asp.Net MVC 5 без Owin?

Mvc 5, кажется, зависит от Овина, и это здорово, если вы хотите самостоятельно принять или запустить на Mac. Но давайте предположим, что я просто хочу работать под IIS, как и предыдущие версии, и меня не интересует, что может предложить Овин. Стандартный "пустой" шаблон mvc5 использует owin и 15 других зависимостей. Я пытался удалить пакеты один за другим, но кажется, что сайт не знал, как начать работу без использования атрибута из Овина. Итак, как мне получить только ASP.net, MVC 5, под IIS без Оуэна?

4b9b3361

Ответ 1

Простой способ отключить Owin находится в файле web.config и в разделе <appSettings> добавить это:

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

Чтобы удалить Owin полностью правой кнопкой мыши по вашему проекту и в меню нажмите Manage Nuget Packages. в левой части окна Manage Nuget Packages нажмите Installed Package, затем в правой части окна в поле поиска введите owin.

введите описание изображения здесь удалите пакеты в порядке:

  • 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 файл и удалите эти разделы из <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>

Удалите файл 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, добавьте appSetting owin: AutomaticAppStartup со значением "false" в вашем web.config. Чтобы указать запуск, класс или метод OWIN, добавьте appSetting owin: AppStartup с полным классом запуска или имя метода конфигурации в вашем web.config. у вас есть два пути его решения:

  • Откройте bin folder, и если есть Owin assembly, удалите все из них
  • Или откройте файл web.config в разделе <appSettings>, затем добавьте этот <add key="owin:AutomaticAppStartup" value="false" />

Ответ 2

В шаблоне mvc5 по умолчанию используется Identity как система членства. Идентичность зависит от Owin, так что причина, по которой она была включена в проект (с несколькими другими "необязательными" пакетами). Если вы создаете новый пустой проект и вручную устанавливаете пакет Microsoft.Aspnet.Mvc(с командой Install-Package Microsoft.Aspnet.Mvc), вы можете видеть, что нет зависимости от Owin.

Obs: вы также можете создать пустой проект с опцией "Добавить папки и ссылки на базовые ссылки для MVC".

Ответ 3

OWIN - это всего лишь стандарт, который отделяет приложения ASP.net от IIS, поэтому приложения могут быть размещены самостоятельно, среди прочих преимуществ, но это не значит, что вы не можете размещать их в IIS.

Ответ 4

Я просто указываю полный маршрут, и он работает для меня.

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

<add key="owin:AppStartup" value="Users.Web.App_Start.IdentityConfig" />