VS是一个痛苦的屁股。
使用IIS Express进行调试时 - 无需创建SSL证书或其他任何东西 - 一切正常:数据库连接,AD连接,SQL连接。 当使用自签名证书发送IIS 7上的所有内容时,没有任何作用,一切都会抛出错误,而且在没有VS调试工具的情况下我一个人待着。
如何使用以下代码
dbconn = new SqlConnection("user id=test;password=test;server=server01;Trusted_Connection=true;TrustServerCertificate=true;database=test;connection timeout=5");
try
{
dbconn.Open();
}
catch (Exception e)
{
Debug.Message("dbconn.open failed: " + e.Message);
}
在我的开发机器上运行时有效,但在server03上的IIS7上它返回
dbconn.open failed: Login failed for user 'INTRA\SERVER03$'.
特别是为什么用户'INTRA \ _SERVER03 $'(不存在,顺便说一句),而不是我在连接字符串中明确指定的用户?
答案 0 :(得分:0)
问题是连接字符串,应该设置为:
user id=test;password=test;server=server01;TrustServerCertificate=true;database=test;connection timeout=5
完成此操作后,下一个问题可能是“SELECT权限被拒绝”,这是因为我的sql用户“test”未设置为数据库“test”的db_datareader(在SSMS下的Security => ;登录)。
这给了我一个很好的后续问题:为什么它在IIS Express中完全可以工作?