Ошибка соединения с проверкой подлинности SQL, подозрительные символы в PW

В веб.конфигурации:

<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD=+abc-def(;" />

Я убедился, что имя пользователя имеет роль db_owner в INITIALDB, удалив пользователя базы данных и заново создав его. Я убедился, что пароль пользователя работает, подключившись к серверу через SSMS (используя указанные выше UID и PWD) и расширив базу данных.

Любые идеи? Я в своем уме, и я не могу очень легко изменить назначенный мне пароль ... Я не думаю, что какой-либо из этих символов нужно экранировать, но явно есть проблема.

ОБНОВИТЬ:

Ошибка не имела ничего общего с символами пароля. Я получал сообщение «Не удается открыть базу данных… запрошено при входе в систему. Ошибка входа в систему…» Однако соединение работало отлично, когда я удалял раздел «Исходный каталог» или «База данных» из строки подключения. Оказывается, у базы данных было имя файла .MDF, которое отличалось от имени базы данных (например, my_db_name и db_name.mdf). По какой-то причине строка подключения, указывающая свойство базы данных или исходного каталога, не смогла подключиться из-за этого. Отсоединение, изменение имени файла MDF, чтобы оно было согласованным, и повторное присоединение базы данных фактически решили проблему. Странно, да?


person mikey    schedule 19.12.2011    source источник
comment
Каких персонажей вы используете? Вам может понадобиться экранировать строку подключения.   -  person SLaks    schedule 20.12.2011
comment
+ - ( пароль на самом деле ведет к + Из того, что я мог собрать, мне нужно только экранировать символы XML, которые нужно экранировать и т. д., не так ли?   -  person mikey    schedule 20.12.2011


Ответы (1)


Используйте пароль следующим образом: &quot;+abc-def(;&quot;

как:

<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD=&quot;+abc-def(;&quot;" />
person Tys    schedule 19.12.2011
comment
Я был очень взволнован, когда увидел это, поскольку это был подход, который я не пробовал раньше, но, увы, все та же ошибка, на самом деле я сделал: +abc-def(; и ваша рекомендация, и '+abc-def(' безрезультатно Я просто собираюсь назвать это ночью, я думаю, и попросить их изменить пароль на что-то более разумное (даже просто в качестве теста) утром. - person mikey; 20.12.2011
comment
У меня есть приложение, которое берет информацию из базы данных и, в конце концов, сохраняет все как обычную строку подключения. с вашими данными он генерирует строку, которую я только что опубликовал. Теперь я также настроил логин с этими данными, и он отлично подключается. - person Tys; 20.12.2011
comment
Решение этой проблемы на самом деле не имело ничего общего с символами пароля. Однако вы ответили правильно, потому что для одного пароля, содержащего точку с запятой, я использовал ваш подход следующим образом: «пароль; слово», и это решило проблему. Я опубликую обновление по вопросу, чтобы описать источник этой конкретной ошибки. - person mikey; 21.12.2011
comment
Я думаю, что ваш ; в конце может быть переставлено и должно быть на самом деле ; но я не проверял. Спасибо за помощь! - person mikey; 21.12.2011