listItem.File.OpenBinary () не работает - удаленное хранилище больших двоичных объектов / FileStreaming не включены на SQL Server виновник? - PullRequest
0 голосов
/ 11 июля 2011

Я перемещаю утилиту миграции строки cmd из DEV в QA и сталкиваюсь со странной ошибкой.Конечно, на dev все работает отлично.

Это некорректная строка кода:

byte[] fileBytes = sourceItem.File.OpenBinary();

"Cannot Open File Error".Внутреннее исключение показывает, что код COM HResult равен 0x81070211

. Я удостоверился, что у моей учетной записи есть разрешения владельца для библиотеки, из которой я пытаюсь получить этот файл.Я даже сделал себя администратором фермы - но я все еще получаю ту же ошибку.

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

Я также вижу, что некоторые связывают эту проблему с файлами размером более 100 КБ и что ее можно решить, поместив сборку вGAC.Тем не менее, это было бы проблематично для этого приложения.

Да, я также пытался использовать все различные параметры параметров.Я также попробовал обходной путь простого открытия потока с помощью OpenBinaryStream, получения длины и чтения данных в массив byte [].Результат всегда одинаков.Что-то мешает мне получить доступ к файлу для чтения в байтах - и сообщение об ошибке просто бесполезно.

Заранее благодарим за любую помощь, которую вы можете предоставить.

IТеперь считают, что проблема может быть связана с удаленным хранилищем BLOB-объектов.В некоторых постах упоминалось, что проблема заключается только в том, что размер файла> 100 КБ.Это тот предел, при котором файлы перемещаются из базы данных контента в файловую систему.Я считаю, что администратор базы данных должен включить FileStreaming в базе данных SQL Server для решения этой проблемы.Я жду, когда наш адвокат из короткой базы ответит на это предложение.Я буду следить за отчетом, если он будет работать.А пока - у кого-нибудь еще есть опыт использования OpenBinary для файлов с RBS?

Трей Кэрролл

Ответы [ 3 ]

0 голосов
/ 14 июля 2011

Проблема была связана с StoragePoint.Учетная запись, выполняющая вызов OpenBinary (), должна иметь явный доступ к базам данных StoragePoint.

0 голосов
/ 07 октября 2011

Я также столкнулся с этой проблемой и обнаружил, что это связано с разрешениями CAS.

Вы можете решить эту проблему, добавив приведенную ниже запись в ваши разрешения CAS

 <IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
0 голосов
/ 11 июля 2011

Это просто обоснованное предположение - у меня нет времени, чтобы проверить свою теорию.Библиотека требует проверки?Если да, проверяете ли вы файл перед тем, как открывать его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...