Существует ли объект DCOM, разрешающий потоковую передачу файла UTF8 с блокировкой записи? - PullRequest
0 голосов
/ 28 апреля 2009

Объект Scripting.FileSystemObject TextStream поддерживает Unicode в стиле Windows и «обычный текст», измененный системной кодовой страницей, но, по-видимому, не поддерживает UTF8 - однако он может фактически передавать потоковые файлы, заблокированные для обновления, такие как файл журнала IIS.

ADODB.Stream поддерживает UTF-8 (или необработанный двоичный файл), но не будет " LoadFromFile " файлом, который был заблокирован для обновления, несмотря на то, что файл открывается в скажем, блокнот. (В результате возникает ошибка: файл ADODB.Stream не может быть открыт. Код ошибки 0x800a0bba) - несмотря на попытку открыть поток в режиме «Чтение» или «Общий». Похоже, что серверный COM-объект требует большей блокировки, чем я на самом деле запрашиваю.

Есть ли другие альтернативы? Я вызываю их удаленно через DCOM, однако даже тестирование на самой хост-системе приводит к тому же поведению.

В идеале должен быть компонент, который будет действовать как поток (т. Е. Поддерживать механизмы поиска), может либо передавать необработанные байты (двоичные), либо обрабатывать простой текст, Unicode и UTF-8 и может читать файлы, которые открыт для записи. Кто-нибудь знает такого зверя?

1 Ответ

0 голосов
/ 29 апреля 2009

Я не уверен, что это то, что вы ищете, но вы можете создать свой собственный серверный стример, взгляните на IPipeByte . Это интерфейс, который существует с win2k, и позволит вам легко передавать байты между клиентом и сервером. Поскольку вы будете выполнять фактическое чтение из файла, проблемы с разрешениями будут только теми, которые ОС навязывает вам. И, конечно же, текстовый формат не будет проблемой вообще.

Есть хорошая статья об использовании труб, которую можно найти здесь . Пример кода отсутствует, но, вероятно, его можно найти в автономном MSDN.

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