2014-09-11 2 views
0

Возможно ли выполнить команду CMD с использованием C# из проекта WebPart/Timer Job проекта SharePoint 2013?Запустить .EXE программно из SharePoint

Я попытался следующие:

string commonFilesPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.System); 
ProcessStartInfo proc = new ProcessStartInfo(); 
proc.FileName = commonFilesPath + "\\cmd.exe"; 
proc.WindowStyle = ProcessWindowStyle.Maximized; 

proc.Arguments = "/C cd C:\\Folder && ftpclient.exe -area=SomethingThatCanChange -login=**** -password=***** -exitonupload"; 

using (Process exeProcess = Process.Start(proc)){ 
    exeProcess.WaitForExit(); 
} 

Вне проекта Sharepoint - Я проверил в проекте Web Forms - это работало отлично. При развертывании в SharePoint это не так. Никакое исключение не выбрасывается.

Я должен периодически выполнять файл .exe (ftpclient.exe), используя значения из списков совпадений. Что я могу сделать?

+0

«Не работайте» не является объяснением проблемы. Обязательно проверяйте журналы, чтобы узнать, есть ли какие-либо исключения и обновить сообщение с вашими выводами. Также подумайте о том, что для загрузки на FTP осталось меньше слоев: теперь у вас есть 3 (cmd -> exe -> ftp), на самом деле 'FtpWebRequest' может быть достаточно, но, по крайней мере, запустить exe напрямую, чтобы получить хорошую информацию об ошибках. –

+0

@Alexei Levenkov Exe не выдает ошибки. Он отлично выполняется вне SharePoint Project (как я уже говорил, в приложении Web Forms). –

+0

http://www.bing.com/search?q=where+to+find+sharepoint+log –

ответ

0

Если вы намереваетесь вызвать этот .exe в качестве расписания, вы должны запустить весь процесс за пределами SharePoint. Внешнее приложение может взаимодействовать с списком SharePoint с использованием клиентской боковой модели объекта (CSOM) или с использованием REST API. Затем вы можете использовать планировщик задач Windows для выполнения этого, как требуется.

http://msdn.microsoft.com/en-us/library/office/fp179912(v=office.15).aspx#BasicOps_SPListItemTasks

Если вы абсолютно необходимо запустить это внутри SharePoint, то убедитесь, что вы используете Полное решение Trust и не Песочница решение.

Смежные вопросы