powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сохранение файла на сетевой диск
5 сообщений из 5, страница 1 из 1
Сохранение файла на сетевой диск
    #37388257
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть необходимость сохранять файлы, полученные сервером на файл-сервер, который подмэплен к рабочему серверу системы как диск (шара). Когда мы пытаемся выполнять ниже приведенный код для пути, расположенного на локальном диске сервера, то всё выполняется безошибочно. Но при попытке выполнения для подмэпленного диска функция %Library.File.CreateDirectoryChain возвращает 0 (false) - файл не сохраняется.

Csp-файл, получающий контент файла по http :
(вывод в глобаль ^a использован исключительно для отладки)


set toDir = %request.Data("Pth", 1)
set ^a("01_toDir") = toDir
set fileName = %request.Data("FileName", 1)
set ^a("02_fileName") = fileName
set uploadFile = %request.GetMimeData("uploadFile")
set ^a("03_uploadFile") = uploadFile
set sc = ##class(%Library.File).CreateDirectoryChain(toDir)
set ^a("04_sc") = sc
set tmpdir=##class(%Library.File).NormalizeDirectory(toDir)
set ^a("05_tmpdir") = tmpdir
set dglFile=tmpdir_fileName
set ^a("06_dglFile") = dglFile
set stm = ##class(%FileBinaryStream).%New()
set ^a("07_stm") = dglFile
set stm.Filename = tmpdir_fileName
set ^a("stm.Filename") = stm.Filename
do stm.CopyFrom(uploadFile)
do stm.%Save(0)
quit

Есть подозрение, что процесс Каше, от имени которого происходит обращение к шаре не аутентифицирован на запись или доступ вообще, в связи с этим вопрос – поддерживается ли в Каше в каком-либо виде возможность Windows-аутентификации по протоколу NetBIOS для доступа к шарам?


-----------------------------------------------
А мы тут плюшками балуемся...

Аленочка тм
...
Рейтинг: 0 / 0
Сохранение файла на сетевой диск
    #37388358
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы меняем пользователя, от которого стартует служба, после этого доступ к сети появляется.
...
Рейтинг: 0 / 0
Сохранение файла на сетевой диск
    #37388368
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АленочкаЕсть подозрение, что процесс Каше, от имени которого происходит обращение к шаре не аутентифицирован на запись или доступ вообще, в связи с этим вопрос – поддерживается ли в Каше в каком-либо виде возможность Windows-аутентификации по протоколу NetBIOS для доступа к шарам? Уже было
Microsoft Mapped Network Drives (новая ссылка)

PS: из найденного списка почитайте в первую очередь этот топик: %SQLGatewayConnection и сетевой диск
...
Рейтинг: 0 / 0
Сохранение файла на сетевой диск
    #37391886
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, то ли лыжи не едут, то ли одно из двух, help нужен asap, кто чем может.

Платфорам Windows Server 2003, Cache 2010.1.1.503.0

Проделано следующее:
1. в области %SYS сделан %ZSTART.mac - не сработало. Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SYSTEM
	kill ^a
	set changedUser = $zu( 159 ,"***","***")  ; даже здесь пытаюсь поменять юзера на локального админа
	set ^a("00_changedUser") = changedUser  ; возвращает  0 , т.е., вроде бы успех
	set rc = $zf(- 1 ,"net use n: /delete")
	set ^a("delete") = "DEL: "_rc   ; возвращает  2 , наверное, это ошибка, т.к. подмэпленный диск не удаляется, если здесь выйти по quit
	set rc = $zf(- 1 ,"net use n: \\192.168.227.17\Istu_Scans gfhjdjpbr /USER:istuscans")
	if rc {
		set ^a("net_use") = "KO: "_rc  ;  всегда переходит сюда, возвращает  2 , т.е., ошибка
	} else {
		set ^a("net_use") = "OK"
	}
 	quit

В тоже время, обе команды под локальным админом из командной строки работают

2. Непосредственно при попытке обращения к подмэпленному диску N: (с учетом п. 1, думаю, понятно, что подмэпить мы можем его только ДО старка Cache) пытаюсь сменить юзера на локального админа аналогичным способом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	set changedUser = $zu( 159 ,"***","***")
	set ^a("00_changedUser") = changedUser
	set toDir = %request.Data("Pth",  1 )
	set ^a("01_toDir") = toDir
	set fileName = %request.Data("FileName",  1 )
	set ^a("02_fileName") = fileName
	set uploadFile = %request.GetMimeData("uploadFile")
	set ^a("03_uploadFile") = uploadFile
	set sc = ##class(%Library.File).CreateDirectoryChain(toDir)
	set ^a("04_sc") = sc  ;  и здесь всё едино получаем  0 , т.е. каталог не создается (в корень файл тоже не пишется, пробовали!)
	...

...в чем засада? где взять лекарство?

Спасибо пытливым умам.
...
Рейтинг: 0 / 0
Сохранение файла на сетевой диск
    #37391990
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аленочка ,
$zu(159) у меня работало только на Cache 5.0. В последующих версиях хоть команда и не возвращала ошибку, но и текущий пользователь процесса не менялся.
Как Вам уже рекомендовали, поменяйте пользователя, под которым стартует служба Cache ("Панель управления" - "Администрирование" - "Службы"). Иногда дополнительно требуется добавить это пользователя в список пользователей, которым разрешен вход в качестве службы ("Панель управления" - "Администрирование" - "Локальная политика безопасности" - "Локальные политики" - "Назначение прав пользователя" - "Вход в качестве службы").
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сохранение файла на сетевой диск
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]