C# Identity Server连接字符串'attachdbfilename'键值无效问题求助
解决“Invalid value for key 'attachdbfilename'”错误
嘿,这个问题我之前帮不少开发者解决过,核心原因是你用错连接字符串参数啦!
错误原因
AttachDbFilename这个参数是专门给本地SQL Server Express用的,用来直接附加本地的.mdf数据库文件。但你现在连接的是远程托管的SQL Server实例(den1.mssql.gear.host),而且已经指定了Initial Catalog=groceryapp——这说明目标数据库已经在远程服务器上创建好了,根本不需要再附加本地的UsersDB.mdf文件,这个多余的参数就是导致报错的元凶。
修复后的连接字符串
把连接字符串里的AttachDbFilename=|DataDirectory|\UsersDB.mdf;这部分删掉就可以了,修改后的配置如下:
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=den1.mssql.gear.host;Initial Catalog=groceryapp;User Id=appID;Password=password;" providerName="System.Data.SqlClient" /> <!-- 你的第二个Entity Framework连接字符串,也要确保去掉和AttachDb相关的配置,保持和远程数据库匹配 --> </connectionStrings>
额外注意事项
- 先确认远程服务器上的
groceryapp数据库确实存在,并且你的appID账号拥有足够的权限(比如创建表、读写数据)来完成Identity表的初始化。 - 如果你用的是Entity Framework Code First,在执行迁移命令时,记得指定正确的连接字符串名称,比如在Package Manager Console里运行:
Update-Database -ConnectionStringName DefaultConnection
内容的提问来源于stack exchange,提问作者Mocha




