Alok Chandra Shahi Ответов: 1

Как получить доступ к приложению windows из ASP.NET веб-сервис?


У меня есть одно приложение windows, которое я использую для получения записи от пользователя. У меня есть одно требование, в котором я должен разработать одно веб-приложение/веб-службу, которая вызовет это приложение windows, откроет некоторую форму windows и вызовет одну функцию, записанную в нее.

Я использую asp.net для веб-службы и c#+vb.net для приложения windows.

Примечание: - Я не могу переписать весь код в asp.net вот почему я ищу такое решение.

Позвольте мне объяснить. Я не хочу запускать свое приложение на стороне клиента. У меня есть веб-сервис/веб-приложение, установленное на сервере, и приложение windows тоже на том же сервере. Пользователь запросит выполнить приложение windows из клиентской системы, и этот веб-сервис должен запустить это приложение windows только на сервере. В моем случае я хочу авторизовать любой процесс, чтобы он двигался вперед, код для этого написан в приложении windows, теперь пользователь хочет получить результат выполнения этого процесса.

Я буду управлять аутентификацией с моей стороны в настоящее время я застрял, чтобы открыть приложение windows и получить доступ к любой форме через asp.net.

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

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

NaibedyaKar

Почему вы хотите позвонить в приложение форм Windows в интернете. Разве вы не можете сделать то же самое с помощью кода веб-сервиса?

Alok Chandra Shahi

Это не маленькое приложение, чтобы переписать весь код, потребуется много времени. К чему моя компания и команда не готова. Я мог бы быть таким же, как распределенное приложение.

1 Ответов

Рейтинг:
0

OriginalGriff

Вы не можете запустить приложение на клиентской машине с сервера: это абсолютно запрещенное действие с точки зрения безопасности. Взаимодействие (и приложение) должно быть запущено пользователем на клиенте и запрашивать действия с сервера, а не наоборот.

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


Alok Chandra Shahi

Позвольте мне объяснить. Я не хочу запускать свое приложение на стороне клиента. У меня есть веб-сервис/веб-приложение, установленное на сервере, и приложение windows тоже на том же сервере. Пользователь запросит выполнить приложение windows из клиентской системы, и этот веб-сервис должен запустить это приложение windows только на сервере. В моем случае я хочу авторизовать любой процесс, чтобы он двигался вперед, код для этого написан в приложении windows, теперь пользователь хочет получить результат выполнения этого процесса.

Я буду управлять аутентификацией с моей стороны в настоящее время я застрял, чтобы открыть приложение windows и получить доступ к любой форме через asp.net.

OriginalGriff

ОК-запуск "приложения Windows" на сервере от клиента совсем не сложен - вызывающий процесс.Начните с вашего веб-сайта / кода веб-сервиса, если служба хостинга не закрыла его, но получить вывод для вашего пользователя сложнее, в зависимости от того, какой именно вывод вы хотите показать. Вы говорите о фактической форме, появляющейся в браузере клиента? Или о выходных файлах приложения?
Помните, что мы не можем видеть ваш экран - все, что мы получаем в рабочей форме, это именно то, что вы вводите, поэтому у нас нет контекста для вашего запроса, кроме этого.

Maciej Los

Я не смог бы выразить это лучше. 5!

Alok Chandra Shahi

У меня есть одно приложение windows, в котором у меня есть 100 форм (Windows Form), каждая форма используется для получения некоторой записи от пользователя. Существует одно понятие "авторизация" въезда в страну. Когда когда-либо пользователь авторизует какую-либо запись из этих форм, мы делаем некоторые вычисления.Эти полномочия осуществляются высшим руководством организации. Сейчас я разрабатываю одно веб-приложение для авторизации записей, выполняемых пользователем. Для этого я не хочу снова переписывать весь код. Мой вопрос заключается в том, что-возможно ли
1. Откройте exe-файл (так как мое приложение windows строится как исполняемый файл)
2. затем откройте конкретную форму (это может быть форма 1 или форма 2 в соответствии с требованиями) с помощью in it.
3. выполнять любые функции, написанной на нем (который будет возвращать какое-то значение)
4. и закройте приложение.

начните работать до этого уровня, потому что открытие приложения не решит мою проблему.

Меня не волнует, будет ли эта форма видна кому-либо или нет. Клиент просто отправляет запрос на авторизацию любой записи (запись любой формы,которая известна пользователю).

OriginalGriff

Вероятно, да - вы можете отправлять" нажатия клавиш " в приложение при условии, что это "приложение переднего плана", которым вы можете сделать его: http://stackoverflow.com/questions/2744111/sending-keystrokes-to-a-program
Но...в контексте web? Плохая идея, потому что у вас потенциально будет несколько разных пользователей, пытающихся сделать одно и то же одновременно, и это приведет к путанице. И кроме того, это будет зависеть от того, как форма / приложение также выполняет бит "возвращает некоторое значение".
Честно говоря, я должен сказать, что, хотя вы можете это сделать, вы, вероятно, не должны этого делать, потому что это вызовет у вас периодические проблемы в производстве, которые, вероятно, невозможно исправить.
Если вы можете переписать приложение windows, чтобы вместо него использовать инструкции командной строки, то это намного надежнее. Или, еще лучше, включите код непосредственно в свой веб-сервис.

Alok Chandra Shahi

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

Мне не нужны никакие нажатия клавиш. Как я уже объяснял ранее, все записи были сделаны конечным пользователем, я просто хочу авторизовать эту запись (для которой я написал одну функцию {скажем, авторизовать} в каждой форме). Я хочу открыть любую форму и вызвать функцию "Load", которая заполнит записи, сделанные пользователем для любой записи, и после этого я хочу вызвать эту функцию авторизации. и эта функция вернет мне либо истину, либо ложь, чтобы узнать статус выполнения.

есть ли такая возможность сейчас