2

環境で K2 をバージョン 4.6.6 から 4.6.11 にアップグレードしました。ロード バランサーがセットアップされた環境には 2 台の K2 サーバーがあります。アップグレード後、K2 ワークフロー API の関数の一部が例外をスローしています。

または、接続されたホストが応答しなかったため、確立された接続が失敗しました。","anonymous","0.0.0.0" "Error","EnvironmentServer","15101","Generic","SourceCode.Workflow.Runtime.Management [ReleaseWorklistItem [文字列[]名]]","15101 エラーが発生しました, エラー: ポート 5252 で loadbal-k2-abc.com に接続できません。接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。","anonymous","0.0.0.0" "Error","System","2025","InternalMarshalError","SourceCode.Hosting.Server.Runtime.HostServerBroker.InternalMarshal","2025 Error Marshalling SourceCode.Workflow.Runtime . Management.WorkflowManagementHostServer.ReleaseWorklistItem、ポート 5252 で loadbal-k2-abc.com に接続できません。接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました. ","","", "Error","System","2025","InternalMarshalError","SourceCode.Hosting.Server.Services.TCPClientSocket.InternalMarshal","2025 Error Marshalling SourceCode.Workflow.Runtime.Management. WorkflowManagementHostServer.ReleaseWorklistItem、ポート 5252 で loadbal-k2-abc.com に接続できません。接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。" "Error","Communication","8060","ProcessPacketError","SourceCode.Hosting.Server.Services.TCPClientSocket.ProcessMessage","8060 ProcessPacket エラー、ポート 5252 で loadbal-k2-abc.com に接続できません. 接続先が一定時間後に適切に応答しなかったために接続に失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。" または、接続されたホストが応答しなかったため、確立された接続が失敗しました。" または、接続されたホストが応答しなかったため、確立された接続が失敗しました。"

HostServer ログでは、K2 サーバーが何らかの理由で K2 ロード バランサーに接続しようとしていることがわかります。これは、これが完全に機能し、ロード バランサーへの呼び出しがなかった K2 4.6.6 からの変更のようです。K2 の構成も確認しましたが、ロード バランサーのアドレスはどこにも記載されていません。

また、ロード バランサーのない環境でアップグレードしたところ、エラーなく動作しています。

K2 ホストサーバーが K2 4.6.11 でロードバランサーに接続しようとするのはなぜですか? また、アドレスはどこから取得しますか?

4

1 に答える 1

1

これは、K2 サポートの助けを借りて解決されました。K2 が接続を作成する方法に変更があり、接続文字列を作成する方法を変更する必要がありました。

これは、SSO の変更 (TFS 524432 - SSO Prompt for Credential cache) により 4.6.11 で導入されました。4.6.10 では、次の接続文字列を使用して HostServer セッションを認証する場合:

Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=k2.denallix.com;Port=5555;UserID=Denallix\Administrator;Password=K2pass!;WindowsDomain=denallix;SecurityLabelName=K2

セッションに関連付けられている接続文字列は、Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=dlx;Port=5555;UserID=DENALLIX\Administrator;Password=K2pass!;AuthData=Denallix;SecurityLabelName=K2 です。

そのため、WindowsDomain キーは SSO の前に保持されず、代わりに AuthData として追加されました (上記のサンプル接続文字列の末尾に注意してください)。

WorkflowManagmentServer から WorkflowClient への接続を開くと、接続に WindowsDomain、Username、および Password があるかどうかがチェックされます。3つすべてがある場合、それらの詳細を使用してユーザーを認証しようとします.4.6.10では、WindowsDomainを永続化せず、ユーザー名とパスワードなしで通常の統合接続文字列を実行します.

基本的に、このような構成では、次の資格情報 WindowsDomain + UserID を使用して認証しようとしています。これにより、認証に "Domain\Domain\User" のようなものが使用され、そのために認証の試行が失敗します。

于 2016-09-23T06:12:38.100 に答える