Проблема при развертывании приложения ASP.NET MVC + LocalDB

Я развернул свое приложение ASP.NET MVC 5 на сервере, но оно падает на каждой странице, используя файл localdb.

Тем не менее, я скопировал папку App_Data, в которой находится файл .mdf. И я даже установил на машину SQL Server 2012 Express.

Тем не менее каждый раз я получаю ту же ошибку.

Подробная информация невозможна
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.ComponentModel.Win32Exception: более подробное описание недоступно

Ошибка источника:

Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и расположении исключения можно определить с помощью приведенной ниже трассировки стека исключений.

Трассировки стека:

[Win32Exception (0x80004005): более подробное описание недоступно]
[SqlException (0x80131904): ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: SQL Network Interfaces, ошибка: 52 — Не удается найти установку среды выполнения локальной базы данных. Убедитесь, что SQL Server Express установлен правильно и включена функция среды выполнения локальной базы данных.)]
System.Data.SqlClient.SqlInternalConnection .OnError (исключение SqlException, логическое значение breakConnection, Action`1 wrapCloseInAction) +5352431

Извините, часть на французском, несмотря на то, что я установил английский язык.

Файл web.config выглядит так:

<connectionStrings>
   <add name="ConnectionString" 
        connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=C:\inetpub\wwwroot\MygLogWeb\App_Data\Database.mdf;Integrated Security=True" 
        providerName="System.Data.SqlClient"/>
</connectionStrings>

А раньше было так:

<add name="ConnectionString" 
     connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True" 
     providerName="System.Data.SqlClient"/>

person Serge    schedule 09.12.2013    source источник


Ответы (2)


Это связано с тем, что LocalDb не предназначен для использования в производстве.

См. статью: Создание модели данных Entity Framework для приложения ASP.NET MVC

В частности, этот текст из статьи: «Обычно SQL Server Express не используется для рабочих веб-приложений. В частности, LocalDB не рекомендуется для производственного использования с веб-приложением, поскольку он не предназначен для работы с IIS».

Поэтому измените значение connectionString, чтобы использовать настоящую базу данных сервера sql, и все будет хорошо!

person Mr. B    schedule 09.12.2013
comment
Быстрое развитие. Тестирование. Подобно тому, как Visual Studio может запускать новый веб-сервер по запросу, а не заставлять вас сначала настраивать IIS только для того, чтобы увидеть, как работает ваше приложение. - person Mr. B; 12.12.2013
comment
Что делать, если вы используете производственную базу данных? - person Jason Foglia; 30.01.2014

У меня была такая же проблема, и здесь (нормально ли использовать LocalDb в производстве? ?) решение найдено. @Krzysztof Kozielczyk@ предоставляет 2 статьи: первый и секунда. Уловок из первого хватило, чтобы решить проблему в моем случае.
На самом деле я просто добавил в C:\Windows\System32\inetsrv\config\applicationHost.config

<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated">
     <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>

Кстати, моя строка подключения выглядит как ваша вторая (с «|DataDirectory|\Database.mdf»).

person SGP    schedule 16.11.2014