Ответ 1
Существуют разные версии sqljdbc_auth.dll для разных процессорных архитектур (x86/x64/ia64). Какой из них вы используете на своем сервере SFS?
Вы должны выбрать тот, который соответствует архитектуре JVM, под которой работает SFS. Итак, если вы используете 32-разрядную Java на 64-разрядной машине, вам понадобится версия x86, а не версия x64.
Я раньше не использовал SFS, поэтому я не знаю, записывает ли он какие-либо журналы в любом месте. Если это так, возможно, стоит взглянуть на эти журналы, чтобы узнать, было ли им что-то полезное.
EDIT. Я не могу быть на 100% уверен, что SFS использует 64-разрядную Java только потому, что в ней заканчиваются файлы C:\Program Files, а не C:\Program Files (x86).
Я нашел следующую строку в SFS docs в разделе Введение > Требования и установка. Хотя эта строка относится только к Linux, а не к Windows, это может означать, что SFS в Windows также использует 32-разрядную Java:
Так как версия 1.5 SmartFoxServer поставляется со своим 32-разрядным Sun Java Runtime x86.
Один быстрый способ определить, какие версии Java, которые вы установили, - это посмотреть, существует ли одна или обе папки C:\Program Files\Java
или C:\Program Files (x86)\Java
. Конечно, если обе папки существуют, это не очень поможет вам.
Работает ли ваше приложение, если вы используете версию sqljdbc_auth.dll x86 вместо версии x64? Если он внезапно начинает работать с x86 DLL, то SFS должен использовать 32-разрядную Java.
Есть ли пакетный файл, используемый для запуска SFS? Если это так, чтение через это может помочь указать, где работает SFS. Также обратите внимание на любые изменения в PATH
. Java может загружать только DLL файлы в системное свойство java.library.path
, а в Windows это устанавливается как значение переменной среды PATH
.
Если вы все еще не можете определить, использует ли SFS 32-разрядную или 64-разрядную Java, попробуйте использовать Process Explorer для просмотра среды, в которой был запущен процесс java.exe с запуском SFS.