2016-12-06 9 views
0

Я уже давно об этом думаю, но это моя первая попытка получить некоторую помощь. Поэтому, возможно, я все еще не задаю правильных вопросов, и я прошу прощения за это. Кстати, это «теоретический» вопрос, я не прошу кодов ... И, английский не мой родной язык (извините еще раз) ...Сделать программное обеспечение для выполнения некоторых действий при нажатии кнопки на моем сайте (теоретический)

Ну, мне нужно (программно) создать метод для разрешить программное обеспечение внутри локальной сети (за маршрутизатором/брандмауэром) выполнить некоторые действия при нажатии кнопки на моем веб-сайте. Программное обеспечение находится в полностью удаленном месте, а не на том же компьютере/сервере, что и на веб-сайте.

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

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

Я ценю любые мысли и идеи о возможном решении этой необходимости, и спасибо заранее!

ответ

0

Теоретически вы можете создать хранимую процедуру на SQL-сервере, которая запускается в результате нажатия кнопки. Например, нажатие кнопки может увеличивать счетчик, запрашивая сервер, а затем запускает процедуру. Вы можете даже передать в него аргументы. Внутри хранимой процедуры на сервере SQL вы должны сообщить ей, чтобы она запускала программу (предпочтительно службу), используя PowerShell.

Ваша кнопка вызовет хранимую процедуру. Эта хранимая процедура вызовет «xp_cmdshell» с параметрами. Powershell затем сообщит удаленному компьютеру о запуске приложения.

BUTTON> Хранимая процедура T-SQL> xp_cmdshell (PowerShell)> Удаленный запуск исполняемого файла.

+0

Привет @JayHamilton! Хорошо, я понял вашу мысль, но программное обеспечение не находится на одном компьютере/сервере. Это моя ошибка, я обновил эту информацию в вопросе. Благодаря! – Guybrush

+0

Не могли бы вы передать команду powershell другому ПК? –

+0

Джей Гамильтон, пожалуйста, можете ли вы дать мне более подробную информацию? Как могут команды powershell помочь мне? Благодаря! – Guybrush

0

Первый ... у вас тяжелая борьба, так как делать то, что вы хотите, ОЧЕНЬ ОПАСНО и, как правило, не разрешено, так как точка веб-приложения заключается в отключении от ОС хостинга. В противном случае хакеры будут иметь огромную входную дверь в машины для людей.

Во-вторых ... вы не знаете, где находится «программное обеспечение». Будет ли он выполняться на веб-сервере, который шлепает ваш веб-сайт, находится ли он на полностью удаленном компьютере в локальной сети или он должен вытащить exe обратно и выполнить на вашем компьютере, который, случается, находится в локальной сети?

С этим ... вы можете проверить эти ссылки на некоторые рекомендации:

https://community.serif.com/forum/8612/x7-run-exe-eg-notepad-exe-by-clicking-button-in-website

How to launch an EXE from Web page (asp.net)

Наконец, вы можете быть в состоянии использовать кнопку для вызова веб-сайта в веб-апи который выполнит exe.

+0

Программное обеспечение находится на полностью удаленном компьютере, в локальной сети, работает с маршрутизатором/межсетевым экраном. Я проверю ссылки. Спасибо! – Guybrush

+0

Я бы сказал, что веб-приложение -> веб-приложение api -> выполнить на некоторых машинах (локальных или удаленных). Вам нужно будет убедиться, что веб-машина api имеет доступ к машине приложения (если ее локальная на веб-машине api, не проблема, если нет, вам нужны разрешения для удаленной машины приложений). –