Проблема AttachDBfilename с ii7 & sql express - PullRequest
0 голосов
/ 05 марта 2012

Мне трудно развернуть мой сайт с моего локального компьютера на мой VPS, вот проблема, я использую AttachDBFileName в моей веб-конфигурации в моем локальном проекте, и это ЕДИНСТВЕННАЯ строка подключения, которую я имею в моей сети применение

<connectionStrings>
<add name="myConnectionString" 
  connectionString="Data Source=.\SQLEXPRESS; 
    AttachDBFileName=|DataDirectory|\AssignmentDB.mdf; 
    Integrated Security=True; User Instance=True; 
    Database=AssignmentDB.mdf" providerName="System.Data.SqlClient" />

Эта строка подключения находится в web.config в корне моего веб-приложения.

И я развертываю это вручную каждый раз, потому что я не знаю, как использовать msdeploy, и вот что я пробовал до сих пор:

  • 1 - изменение строки соединения gizillion раз и не повезло ..
  • 2 - присоединение базы данных к моему sql express на VPS с использованием управления SQL Студия и дает разрешения на все логины.
  • 3 - перезапуск веб-сайта в iis после каждого изменения.

Каждый раз, когда я запускаю веб-сайт и пытаюсь использовать любую функцию, требующую подключения к БД, я получаю ошибку 500.

Дело в том, что я погуглил эту проблему, и никто, кажется, не предлагает какой-либо четкой конфигурации для всех трех приложений, задействованных для запуска этой базы данных.

Обновление:

это строка подключения, которую я пробовал после подключения БД к серверу sql.

<add name="myConnectionString" connectionString="Data Source=.\SQLEXPRESS; 
    Initial Catalog=AssignmentDB; Integrated Security=True" 
    providerName="System.Data.SqlClient" />

Я не получаю какого-либо конкретного сообщения об ошибке, он только перенаправляет меня на страницу с ошибкой 500 и все.

Обновление - 2

Просто, чтобы очистить его для будущих пользователей, для идентификатора AppPool по умолчанию было установлено значение DefaultAppPoolIdentity, я изменил его на localSystem и получил доступ к моей БД:)

1 Ответ

2 голосов
/ 05 марта 2012

При развертывании на хосте вы больше не должны использовать AttachDbFileName, это для локальной разработки.На вашем веб-сервере должна быть одна и только одна копия базы данных, и вы должны ссылаться на имя базы данных по Initial Catalog, а не на физический путь к файлу MDF.Также User Instance не должно быть истинным.

Строка подключения должна начинаться с:

<add name="myConnectionString" 
  connectionString="Data Source=.\SQLEXPRESS;
  Initial Catalog=AssignmentDB;
  providerName="System.Data.SqlClient" />

Тогда вам нужно будет либо добавить параметры User ID и Password, либоиспользуйте Integrated Security = True, который у вас уже был.В среде хостинга наиболее вероятно, что вы получили учетные данные для аутентификации SQL, а не Windows, но я могу ошибаться.Вам также может потребоваться указать имя сервера, отличное от .\SQLEXPRESS, поскольку в размещенной среде вы не всегда имеете дело с именованным экземпляром, это не всегда Express Edition и обычно не на той же машине, что и веб-сервер.

Поскольку вы используете проверку подлинности Windows, убедитесь, что IIS может подключаться к SQL Server.Это можно сделать, указав идентификатор для пула приложений / веб-сайта или , настроив проверку подлинности Windows .

...