You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动