Хорошо. Я вижу, что было достаточно много подобных вопросов, которые уже были заданы. Поверхность формы может показаться, что я не должен задавать этот вопрос, потому что многие люди уже пытались ответить на этот вопрос, но я объясню, что мой сценарий отличается:
Прежде всего, мои настройки:
У меня есть два сервера за балансировщиком нагрузки
Сервер A: запуск службы Windows в качестве домена Service_account Сервер B: Запуск службы Windows в качестве домена service_account
и затем эта служба Windowsв конце концов вызывает SQL Server для выполнения хранимой процедуры, которая, конечно, пытается выполнить массовую вставку из файла, находящегося в \ network \ location. Теперь я не знаю, насколько важна его информация, но это сетевое местоположение на самом деле является папкой, общей для сетевой папки на Server B
, поэтому в основном \ network \ location = Сервер B: C / что-то.
ТеперьЯ добавил всех в качестве пользователя в эту папку и установил полный доступ к нему, чтобы убедиться, что нет проблем с разрешениями для всех, кто пытается получить доступ к папке.
Теперь я получаю эту ошибку: Cannot bulk load because the file “" could not be opened. Operating system error code 5(Access is denied.).
ТОЛЬКО иногда. Вся проблема здесь в том, что ошибка не всегда воспроизводима. Это происходит только раз в неделю. Я пытался обойти балансировщик нагрузки и делать запросы непосредственно с сервера, и я не нашел никаких проблем. Кроме того, я также заметил, что запросы, сделанные до и после этого неудачного запроса, все успешны. Это означает, что это in a true sense
спорадическая ошибка.
После просмотра SO я обнаружил две основные причины, которые традиционно вызывали эту ошибку:
Когда пользователь, работающий с другой службой, действительно не имеет к ней доступапапки. Что не так, потому что буквально каждый имеет доступ к этой папке.
Я сталкивался с некоторыми темами, где люди указывают на потенциальную Kerberos Double Hop
как потенциальную проблему. Как объяснено здесь: https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ff649317(v=pandp.10)?redirectedfrom=MSDN
Это может быть Kerberos, и я копаю дальше, чтобы увидеть, если это проблема или нет. Но в то же время, скажем, Kerberos double hop
является виновником, что объясняет спорадический характер этой ошибки? Если Kerberos отбрасывает учетные данные, то не будет это все время отбрасывать его вместо того, чтобы ТОЛЬКО выбирать несколько раз?
Или также сказать, что ни одна из этих двух причин не является настоящей причиной этой ошибки. Настоящая проблема заключается не в самой ошибке, а в самой спорадической природе ошибки. Может ли это быть что-то в сети, что может вызвать сбой в соединении?