当社では、SQL データベースに接続するために使用する新しい Windows アプリを開発しました。アプリをドメイン環境外で実行すると、問題なく動作します。アプリを実行しているコンピューターをドメインに接続すると、アプリはすぐにクラッシュします。
問題の原因と思われるエラーがいくつか見つかりましたが、それらを正確に解釈する方法や、プログラムの妨げになっている原因がわかりません。PC がドメイン外にあるときはプログラムは正常に動作するため、ファイアウォールの問題ではないと思います。すべてのグループ ポリシー設定を詳しく調べましたが、アプリの動作を妨げるものは何もないようです。ただし、状況を考えると、ファイアウォールが原因の可能性が高いようです。
エラーは次のとおりです:
アプリケーションログ
Faulting application name: WcBc.UWP.exe, version: 1.0.0.0, time stamp: 0x5e1b7efb
Faulting module name: ntdll.dll, version: 10.0.18362.418, time stamp: 0x99ca0526
Exception code: 0xc0000005
Fault offset: 0x000000000001792d
Faulting process id: 0x5e2c
Faulting application start time: 0x01d5cd738a0fa05b
Faulting application path: C:\Program Files\WindowsApps\WcBc_6.0.3.0_x64__x092f3jx59vf4\WcBc.UWP.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: fc0e2bd5-9704-4ad2-b601-b61c8bfd53a7
Faulting package full name: WcBc_6.0.3.0_x64__x092f3jx59vf4
Faulting package-relative application ID: App
セキュリティログ
The Windows Filtering Platform has blocked a packet.
Application Information:
Process ID: 24108
Application Name: \device\harddiskvolume3\program files\windowsapps\wcbc_6.0.3.0_x64__x092f3jx59vf4\wcbc.uwp.exe
Network Information:
Direction: Outbound
Source Address: 10.80.243.64
Source Port: 58988
Destination Address: 10.101.10.18
Destination Port: 4118
Protocol: 6
Filter Information:
Filter Run-Time ID: 71531
Layer Name: Connect
Layer Run-Time ID: 48
答え1
開発者はどこで失敗しているのかを正確に教えてくれるはずですが、私は WindowsApps 内のフォルダーのセキュリティに問題があると想定します。昇格した権限でアプリを実行して、それが機能するかどうかを確認してください。
はいの場合、ユーザーは通常 Program Files に書き込むことはできませんが、アプリケーションが生成したデータが保存される ProgramData には書き込むことができるため、アプリは正しく開発されていないと言えます。
そうでない場合は、環境へのアクセスを提供して、環境内でテストしてデバッグできるようにするか、分析に役立つ詳細なログをファイルに書き込むように依頼します。
PS: 可能であれば、SQL サーバーで簡単なドメインをセットアップし、既定の環境内でテストしてください。そこで機能する場合は、グループ ポリシーの問題なので、問題が発生する場所が見つかるまで、次々に追加して逆方向に作業してください。
答え2
リバースエンジニアリングに取り組んでいるので、フィルターのランタイム ID を使用してフィルターそのものを識別できるようです。
ドキュメント[ここ][1]から、ブロッキング層を特定し、フィルター実行時ID 71531を探すことができるはずです
netsh wfp show filters
(フィルター実行時ID: 71531
Filter Run-Time ID [Type = UInt64]: unique filter ID which blocked the packet.
ID で特定の Windows Filtering Platform フィルターを検索するには、次のコマンドを実行する必要があります: netsh wfp show filters。このコマンドの結果として、filters.xml ファイルが生成されます。このファイルを開き、必要なフィルター ID () を持つ特定の部分文字列を検索する必要があります。
これで、出発点がわかるはずです。GPO 以外にも、トラブルシューティングが意味を持つ可能性のある項目がいくつかあります。
Kerberos と認証: SQL サーバーもドメイン上にありますか? DNS 名または IP で使用されていますか? SQL アカウントまたはドメイン アカウントですか? 5 分を超える時間差がありますか? (https://web.mit.edu/Kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Clock-Skew.html)
受信側ファイアウォール: 別のサブネットに接続していますが、構成する必要があるファイアウォール/ルートの問題がある可能性がありますか?
幸運を祈ります!