我在 BizTalk 管理数据库上遇到登录失败异常,而已证明 ConnectionString 有效并且用户拥有权限(因为我使用 sa 进行测试)。它在通过 Web Api 时有效,而在通过 Windows 服务时不起作用。
我得到的异常如下所示:
无法打开登录请求的数据库“BizTalkContextMgmtDb”。登录失败。用户“sa”登录失败。- System.Data.SqlClient.SqlException
我在 Windows 服务的应用程序配置中使用与 asp.net WebApi 的 Web 配置中相同的连接字符串
我使用的连接字符串如下所示:
<add name="BizTalkContext" connectionString="Server=ServerName;Database=BizTalkMgmtDb;User ID=sa;Password=******;" />
连接的代码在与 BizTalk 通信的类库中,ConnectionString 设置如下:
private static string Connectionstring =
ConfigurationManager.ConnectionStrings["BizTalkContext"].ConnectionString;
奇怪的是,当我尝试从 web api 中运行这个类库中的方法时,一切正常!当我尝试从 Windows 服务中运行类库中的方法时,它会引发显示的异常。
这里可能是什么问题,因为我在两个项目中使用了相同的技术和相同的库。
编辑
Rick van Bodegraven建议将以下内容添加到连接字符串中。“Trusted_Connection=False;加密=True;”
这导致了一个新的异常:
与服务器成功建立连接,但在登录过程中出现错误。(提供者:SSL 提供者,错误:0 - 证书链由不受信任的机构颁发。) - System.Data.SqlClient.SqlException