Наша компания разработала новое приложение для Windows, предназначенное для подключения к базе данных SQL. Когда приложение запускается вне среды домена, оно работает отлично. Когда компьютер, на котором он запущен, присоединяется к домену, приложение сразу вылетает.
Я обнаружил пару ошибок, которые, как мне кажется, могут указывать на проблему, но я не уверен, как их точно интерпретировать или что может мешать работе программы. Я не считаю, что это проблема с брандмауэром, поскольку программа отлично работает, когда компьютер находится вне домена. Я просмотрел все настройки групповой политики, и, похоже, там нет ничего, что могло бы препятствовать работе приложения,хотя, учитывая обстоятельства, это кажется вероятным виновником.
Вот ошибки:
Журнал приложений
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
Разработчики должны иметь возможность сказать вам, где именно это не работает, но я предполагаю, что это безопасность папки в WindowsApps. Попробуйте запустить приложение с повышенными правами и посмотрите, работает ли оно.
Если да, то я бы сказал, что приложение разработано неправильно, поскольку пользователи обычно не могут писать в Program Files, но могут в ProgramData, где должны быть сохранены любые данные, созданные приложением.
Если нет, предоставьте им доступ в вашу среду, чтобы они могли протестировать его в вашей среде и отладить или попросить их записать подробный журнал в файл, который поможет с анализом.
PS, если можете, настройте быстрый домен с SQL-сервером и протестируйте его по умолчанию Окружающая среда. Если он там работает, то это групповая политика, поэтому работайте в обратном направлении, добавляя одно за другим, пока не найдете, где он ломается.
Поскольку вы работаете в области обратного проектирования, похоже, вы можете определить фильтр, используя идентификатор времени выполнения фильтра.
Из документации [здесь] [1] вы сможете определить уровень блокировки с помощью
netsh wfp показать фильтры
и найти 71531 идентификатор времени выполнения фильтра (идентификатор времени выполнения фильтра: 71531
идентификатор времени выполнения фильтра [Type = UInt64]: уникальный идентификатор фильтра, который заблокировал пакет.
Чтобы найти конкретный фильтр платформы фильтрации Windows по идентификатору, вам необходимо выполните следующую команду: netsh wfp show filters. Как результат эта команда будет сгенерирована в файле filters.xml. Вам нужно открыть это file и найдите конкретную подстроку с требуемым идентификатором фильтра ()
. Это должно дать вам место для начала. Помимо 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 )
Брандмауэр принимающей стороны: Вы подключаетесь к другой подсети, возможно ли, что существует проблема с брандмауэром / маршрутом, которую необходимо настроить?
удачи!