Member 12895260 Ответов: 2

Как архивировать файлы с помощью процедуры хранения SQL CLR


Привет, я новичок в .Net. в соответствии с моими бизнес-требованиями я должен заархивировать файлы на основе имени файла в столбце номер счета таблицы данных. Если имя файла совпадает, у нас есть zip total matched files с защитой паролем. Я написал код для zip-файлов .Он работает в консольном приложении. Он не работает в среде CLR хранимые процедуры. При выполнении процедуры хранения возникает ошибка.

.Framework произошла ошибка во время выполнения определенных пользователем подпрограммы или статистической . Системная безопасность. исключение безопасности

Я дал разрешение на DLL в качестве внешнего доступа.

Что я уже пробовал:

Вот мой код для архивирования папки.
Sting path= @"c:\program files\ 7z\7z.exe";

String Destinationfolder=@"d:\temp\";
String Source folder=@"E:\myfiles.zip";

Processstartinfo pro= new processstartinfo ("cmd.exe");
Process p=new process ();
Pro.windowstyle= processwindowstyle.hidden;
Pro.filename= path;
Pro.arguments="a -p passwordd+ "\""+Destination folder+"\""+ source folder+"\"";
Process x= process start(pro);
X.waitforexit();
Int status= x.exitcode;

Это моя ошибка в коде. Пользуюсь .Net framework 4

Спасибо за аванс

2 Ответов

Рейтинг:
20

Wendelius

Поскольку вы начинаете новый процесс, а не просто используете файлы и т. д., Попробуйте определить сборку как UNSAFE вместо EXTERNAL_ACCESS

В зависимости от вашей ситуации вам также может потребоваться установить Надежное свойство базы данных[^] на.


Wendelius

Чтобы ответить на ваш вопрос в решении 2: "Можете ли вы дать краткое описание внешнего доступа, безопасного, небезопасного. В каких случаях мы должны идти с внешним доступом, или безопасно, или небезопасно".

Взгляните на Создание сборки[^] Я думаю, что эта статья довольно хорошо объясняет различия. Трудно сказать точные границы для external_access, но многие" низкоуровневые " операции могут использовать Win32 API, и это потребует небезопасности.

Рейтинг:
1

Member 12895260

Да. Это работает. Можете ли вы дать краткое описание внешнего доступа, безопасного,небезопасного? В каких случаях мы должны идти с внешним доступом, или безопасно, или небезопасно. Спасибо за аванс


Wendelius

Отвечая на сообщение, используйте кнопку" Задать вопрос или комментарий". Таким образом, оригинальный плакат получает уведомление.

Удаление этого решения может быть хорошей идеей, поскольку на самом деле это не решение. Просто наведите курсор на свое решение и нажмите большой красный крестик :)