In web.config:
<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD=+abc-def(;" />
我通过删除数据库用户并重新创建它来确保用户名在INITIALDB中具有db_owner角色。通过通过SSMS连接到服务器(使用上面的UID和PWD)并扩展数据库,我确保了用户名密码可以工作。
任何想法?我已经无计可施了,我不能轻易更改分配给我的密码。我不认为这些字符需要转义,但显然有一个问题。
更新:错误与密码字符无关。我收到"无法打开数据库……"登录请求。登录失败……"然而,当我从连接字符串中删除"Initial Catalog"或"Database"部分时,连接工作得很好。结果发现数据库的.mdf文件名与数据库的名称不同(例如my_db_name和db_name.mdf)。由于某种原因,指定"数据库"或"初始目录"属性的连接字符串因此无法连接。分离,将MDF文件名更改为一致,然后重新附加数据库实际上对问题进行了排序。很奇怪,对吧?
这样使用密码:"+abc-def(;"
:
<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD="+abc-def(;"" />