Как развернуть приложение ASP.NET MVC 4 с помощью localDB для локального IIS в Windows 7?

Когда я пытаюсь запустить приложение ASP.NET MVC 4 с использованием локального IIS в Windows 7 с Visual Studio 2013. Я столкнулся с следующей ошибкой, когда приложение пытается подключиться к localDB\v11.0

Ошибка сервера в приложении "/".

Произошла ошибка, связанная с сетью или конкретным экземпляром, в то время как установление соединения с SQL Server. Сервер не был найден или недоступен. Проверьте правильность имени экземпляра и что SQL Server настроен на разрешение удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 50 - время выполнения локальной базы данных произошла ошибка. Невозможно создать автоматический экземпляр. См. Windows Журнал событий приложений для получения сведений об ошибках. )

2 журнала событий

Неожиданная ошибка при попытке доступа к экземпляру LocalDB конфигурации реестра. См. Журнал событий приложения Windows для Сведения об ошибке.

и

Не удается получить локальный путь данных приложения. Скорее всего, профиль пользователя не загружается. Если LocalDB выполняется под IIS, убедитесь, что загрузка профиля включена для текущего пользователя.

Большинство решений, которые я нашел в Интернете, ссылаются на это сообщение: http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-1-user-profile.aspx

Единственное различие, которое я вижу между описанной ситуацией и моей ситуацией, заключается в том, что описанный код ошибки равен 0, тогда как мой код ошибки равен 50. Однако предлагаемое решение не работает для меня.

Я не могу пройти эту ошибку, даже если я установил для параметра setProfileEnvironment значение true, и я потратил много времени на игры с различными параметрами processModel и пулами приложений.

Ответы

Ответ 1

У меня также была такая же проблема, но для нее есть решение.

Перейдите на сервер IIS, а затем в пул приложений, из которого выполняется ваше приложение. В расширенных настройках пула приложений есть опция "Модель процесса", в которой есть опция "Идентификация". По умолчанию это идентификатор пула приложений. Измените его на локальную систему, и все готово.

И помните, чтобы класть папку App_Data в папку WWW сервера IIS

Ответ 2

Попробуйте это, это решит вашу проблему:

Отредактируйте файл applicationHost.config в% windir%\system32\inetsrv\config\в частности раздел ApplicationPools.

Измените IdentityType на NetworkService для использования недавно созданной базы данных.

<add name="ASP.NET v4.0" managedRuntimeVersion="v4.0">
   <processModel identityType="NetworkService" loadUserProfile="true" setProfileEnvironment="true" />
</add>

Ответ 3

Убедитесь, что пул приложений использует идентификатор, который имеет доступ к нужному экземпляру LocalDB.

Затем отключите ASP.NET олицетворение в настройках аутентификации приложения. В противном случае приложение использует учетную запись IUSR_MachineName для доступа к базе данных.

Эта настройка может оказаться непригодной для производственной среды, но может быть достаточной для разработки баз данных и приложений.

Ответ 4

Может быть, это поможет кому-то. У меня была такая же проблема с установкой пустой версии Epise3rver 7.5+, но было ясно, что она не связана ни с настройками, ни с настройками, так как у моих коллег не было этой проблемы. Я закончил удаление всех приложений, связанных с MSSQL, и переустановил MsSQL Express 2014. И это сработало! Я пытался до установки 2014 года, но ничего не изменил, так как сказал, что я удалил все связанные с MsSQL перед установкой 2014 снова. Надеюсь, что это поможет.

Ответ 5

Использование MVC 5.2.3.0 У меня была аналогичная проблема... добавлено это в мой web.config.

<!-- Configure the Sql Membership Provider -->  
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">  
  <providers>  
    <clear />  
      <add   
        name="SqlMembershipProvider"   
        type="System.Web.Security.SqlMembershipProvider"   
        connectionStringName="SqlConn"  
        applicationName="MembershipAndRoleProviderSample"  
        enablePasswordRetrieval="false"  
        enablePasswordReset="false"  
        requiresQuestionAndAnswer="false"  
        requiresUniqueEmail="true"  
        passwordFormat="Hashed" />  
  </providers>  
</membership>  

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-use-the-aspnet-membership-provider