Проблема с подключением к SQL Express - PullRequest
1 голос
/ 08 марта 2012

У меня есть два проекта visual studio 2010, которые я выполняю локально.Один представляет собой облачный проект и подключается к хранилищу таблиц Azure в дополнение к локальному SQL Express, а другой - не облачный проект.Оба проекта пытаются подключиться к локальной базе данных SQL Express через аналогичный код, сгенерированный через xsd, а также напрямую в aspx через сетку с привязкой к данным.Не облачный проект подключается нормально, но облачный проект завершается неудачно с общей ошибкой:

"Попытка присоединить базу данных с автоматическим именем для файла C: \ Users ... mdf не удалась. База данных стакое же имя существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC. "

В обоих проектах используется одна и та же строка подключения в файле Web.config:

    <add name="WorkoutLogConnectionString1"
  connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf;
  Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

InПроводник сервера VS2010 из облачного проекта. Я могу подключиться к экспресс-базе данных очень хорошо, но когда проект запускается, он не может подключиться.Облачный проект также подключается к удаленной облачной базе данных SQL Azure через другую строку подключения в Web.config, и это подключение работает нормально.

Я видел статью поддержки MS: http://support.microsoft.com/kb/2002980 и подумал, что, возможно,Первоначально проекты создавались с разными версиями VS, и это, возможно, вызывало у меня проблемы, поэтому я предложил изменения IIS для пулов приложений ASP.net 4.0, но безрезультатно.

Поскольку работает строка подключения SQL Expressв одном проекте, а не в другом, я в тупике.Есть ли какие-то другие элементы конфигурации или что-то связанное с тем, что провальный проект является облачным проектом, на который я должен обратить внимание?

Ответы [ 2 ]

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

Вы пытаетесь запустить оба проекта одновременно (одновременно - несколько запускаемых проектов).Если это так, то это действительно общая проблема с SQL Express.Часто это происходит, когда вы открываете базу данных в VS Server Explorer.Если у вас есть несколько приложений, обращающихся к одной и той же базе данных, я предлагаю вам вручную присоединить базу данных к вашему SQL Server Express.Вы можете сделать:

  1. открыть SSMS (Sql Server Management Studio), подключившись к локальному экземпляру SQL Express.
  2. Перейдите в ветку Базы данных
  3. Щелкните правой кнопкой мыши -> Присоединить базу данных
  4. Найдите файл mdf
  5. Готово!

Теперь измените вашу связь на ту, которая предложена Аароном.Обычно я советую теперь использовать AttachDbFilename и UserInstance, но вместо этого присоединить базу данных напрямую и использовать ее как с обычным автономным экземпляром SQL Server.Сохраняет много головных болей.

1 голос
/ 08 марта 2012

Вы подключили свою базу данных к реальному экземпляру SQL Server Express?Если это так, уберите всю эту ерунду AttachDbFilename и User Instance.Для простоты и согласованности вы можете использовать локальную аутентификацию SQL.Так что у вас должно быть что-то вроде:

<add name="WorkoutLogConnectionString1"
  connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;
  User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" />
...