3

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

4

1 に答える 1

1

サーバーを再起動してWindowsサービスを再インストールすると、問題が解決したことがわかりました。展開プロセスのどこかにバグがあっただけです。

したがって、これは実際には答えではなく、質問も既知の問題ではないことを知っています。同じ問題を抱えている人は、実際にすべてのものを再起動、再インストール、および再展開しようとすることができます. 残念ながら、これがこの問題に関する私からの唯一のアドバイスです。

于 2013-05-16T08:34:28.063 に答える