Ошибка IErrorInfo.GetSource с E_FAIL (0x80004005)

Я использую приведенный ниже оператор для запроса поиска Windows и получения вышеуказанной ошибки и следующей ошибки IErrorInfo.GetDescription failed with E_FAIL(0x80004005) .

  var query = "SELECT System.ItemName FROM servername.SystemIndex " +
               "WHERE SCOPE='file://servername/temp/DanB/Newsletter' 
                  and contains('" +   txtSearch.Text + "')";

(Я не упомянул имя сервера выше, но я использую правильное имя сервера)

Я искал эту ошибку и, похоже, это может произойти из-за использования зарезервированных слов и символов. Я прошел через Доступ к зарезервированным словам и символам 2007 года, и кажется, что с этим оператором все в порядке.

Хотя я подозреваю, что temp может вызвать проблемы, поэтому я попробовал [temp], но результат тот же.

Также я проверяю значение, поступающее из текстового поля.

Поэтому я попытался скопировать файл на локальный диск, и это сработало.

 var query =  "SELECT System.ItemName FROM SystemIndex " +
              "WHERE SCOPE='file:C:/Users/temp/DanB/Newsletter' 
                 and contains('" + txtSearch.Text + "')";

Я подумал о пункте FROM. в отношении поиска Windows и синтаксиса (запрос сетевого диска) мне кажется, что это нормально.

Любая идея, что вызывает эту проблему?


person huMpty duMpty    schedule 20.09.2013    source источник
comment
Предполагая, что он есть в Access, вы действительно должны использовать параметризованный запрос... особенно если он принимает пользовательский ввод.   -  person Jeff B    schedule 20.09.2013
comment
@JeffBridgeman: я тестирую его с разными ключевыми словами, поэтому на данный момент я использую текстовое поле. Но настоящая проблема заключается в вышеуказанной ошибке!   -  person huMpty duMpty    schedule 20.09.2013
comment
Нажмите клавишу Windows и клавишу R (или вызовите диалоговое окно запуска), введите \\имя_сервера\temp\DanB\Newsletter. Откроется ли папка? Ошибка связана либо с ошибкой разрешения, либо папка не существует. обычный контекст - \\имя_сервера\имя_ресурса   -  person Sorceri    schedule 23.09.2013
comment
@Sorceri: я пытался использовать run, и он отлично работает (без проблем показывает местоположение)   -  person huMpty duMpty    schedule 24.09.2013
comment
@huMptyduMpty Можете ли вы проверить разрешения? Когда вы сами переходите к местоположению файла, сервер проверяет ваши разрешения. Когда вы запускаете код, код будет выполняться под другим логином asp.net, который может не иметь разрешений на сервере. Проверьте, какой логин используется и какие разрешения на вход в систему доступны на сервере.   -  person Vulcronos    schedule 27.09.2013
comment
@Vulcronos: использовалась аутентификация Windows, разрешения сервера тоже в порядке!   -  person huMpty duMpty    schedule 27.09.2013
comment
@huMptyduMpty Можете ли вы подключиться к любому файлу или пути к файлу на сервере с помощью С#? Мы должны проверить, связана ли проблема с сервером или только с этой папкой.   -  person Vulcronos    schedule 27.09.2013
comment
Какая ОС на удаленной машине? Вы уверены, что Windows Search установлен на удаленном компьютере?   -  person Lynn Crumbling    schedule 30.09.2013
comment
@LynnCrumbling: Да, поиск Windows есть с включенной индексацией   -  person huMpty duMpty    schedule 30.09.2013
comment
@Vulcronos: Да, я пытался открыть тот же файл с помощью приложения. Он отлично работает   -  person huMpty duMpty    schedule 01.10.2013
comment
@huMptyduMpty Я дважды проверил ваш синтаксис и все остальное, что смог найти, но все выглядит хорошо. Если вы не можете дать нам более подробную информацию, я не знаю, что еще можно сделать, чтобы помочь. Я бы просто протестировал разные сценарии с вашей стороны. Вы можете искать другие компьютеры? Другие папки на этом сервере?   -  person Vulcronos    schedule 02.10.2013


Ответы (1)


Мы удалили индексацию с сервера и заново настроили ее. Который работал нормально сейчас

person huMpty duMpty    schedule 30.10.2013