Лучший способ запустить инструмент со страницы ASP.Net - PullRequest
3 голосов
/ 26 марта 2009

У меня есть инструмент разработчика, который я хочу запустить с внутреннего сайта. Он сканирует исходный код проекта и сохраняет информацию в БД. Я хочу, чтобы пользователь мог зайти на сайт, выбрать свой проект и нажать «Выполнить».

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

РЕДАКТИРОВАТЬ: я должен отметить, в настоящее время это должно быть сделано в VS2005.
РЕДАКТИРОВАТЬ 2: Я ищу функции, аналогичные TrendMicro Housecall . Я хочу, чтобы сканирование выполнялось локально, но результат будет отображаться на веб-странице

Ответы [ 4 ]

3 голосов
/ 26 марта 2009

Вы можете использовать проект ClickOnce (winform / wpf) - по сути, обычное клиентское приложение, развернутое через веб-сервер. На клиенте он может делать все, что ему нужно. VS2005 / VS2008 имеют это (для winform / wpf) как «Опубликовать» - и приводит к файлу «.application», который распознается браузером (или, по крайней мере, некоторыми браузерами ;-p).

Вы могли бы быть в состоянии сделать то же самое с Silverlight, но у него более строгая песочница и т. Д. Также необходимо попросить веб-сервер выполнить всю работу с БД от его имени.

1 голос
/ 26 марта 2009

Я хочу запустить сборку локально на своей машине

Звучит так, будто вы хотите, чтобы они загрузили инструмент и запустили его со своего локального компьютера, вам это подходит?

0 голосов
/ 26 марта 2009

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

если проекты / конечные пользователи находятся в другой подсети и т. Д., То вам потребуется, чтобы конечные пользователи запустили инструмент и затем отправили данные в базу данных.

0 голосов
/ 26 марта 2009

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

Чтобы запустить exe на компьютере, попробуйте следующий пример блокнота, хотя вам, возможно, придется использовать и указанный каталог

ProcessStartInfo psi = new ProcessStartInfo ("notepad.exe");
psi.WindowStyle = ProcessWindowStyle.Hidden;

Процесс p = новый Процесс (); p.EnableRaisingEvents = true; p.Exited + = новый EventHandler (ExitHandlerToKillProcess); p.StartInfo = пси; p.Start ();

и когда закончите, не забудьте убить процесс. Поочередно используйте JavaScript. В любом случае следите за разрешениями безопасности и помните о рисках, связанных с этим.

...