Запустить функцию веб-страницы C # на процессоре посетителей? - PullRequest
0 голосов
/ 09 февраля 2012

Каков хороший способ запустить функцию времени с веб-страницы C # на пользовательском процессоре вместо ее запуска на веб-сервере?Можно ли заставить функцию C # работать локально или мне нужно написать функцию на JavaScript?Сама функция ни в коем случае не является секретной, но я бы предпочел, чтобы ввод и вывод хранились в секрете от пользователя.Решение не должно требовать, чтобы пользователь что-либо загружал.

Эта функция использует данные из базы данных + пользовательский ввод, а когда она закончена, записывает вывод в базу данных.

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

Ответы [ 5 ]

1 голос
/ 09 февраля 2012

Вы можете заставить это работать, либо

  • , кодируя функцию в JavaScript
  • , компилируя исходный код C # в JavaScript (вне проторенной дорожки)
  • запуск кода C # в silverlight (сделано и сделано снова, помните Java-апплеты? Та же наука)

Однако вы не сможете полностью сохранить данные в тайне.

Теперь, как это сделать ... Вам понадобится веб-сервис для предоставления данных вашему компоненту silverlight и еще один для приема вычисленных результатов.Вы знаете, я действительно не понимаю, почему все остальные здесь думают, что это такой запрет ...

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

ЛичноЯ бы написал код на стороне клиента в JavaScript.Скорее всего, то, что вы хотите сделать, является скорее алгоритмическим, нежели библиотечным делом, поэтому перенос на js не должен быть сложным.

0 голосов
/ 09 февраля 2012

Единственный код, который вы можете запустить на клиенте, это js. При этом вы определенно не хотите запускать свою функцию на клиенте, если у вас есть конфиденциальная информация.

0 голосов
/ 09 февраля 2012

Вы не можете выполнить любой код C # на клиентском компьютере при входе на веб-страницу. Вы правы в своем предположении, что вам нужно написать это в javascript для выполнения на клиенте.

0 голосов
/ 09 февраля 2012

Это не работает.Веб-сервер выполняет обработку.Если вы не занимаетесь распределенными вычислениями и тому подобным образом, он не предназначен для работы на клиенте.Клиент должен загрузить программное обеспечение для обработки материала.Веб-страница является веб-страницей.Текст.

0 голосов
/ 09 февраля 2012

Вы не можете и не должны запускать произвольный код CS на компьютере пользователя.Вы также не можете запустить долгоживущий процесс в JavaScript на клиенте.Взаимодействие пользователей со страницей будет заблокировано, и если они перейдут на другую страницу, оно остановится.

Что вам нужно сделать, так это написать службу Windows для выполнения этих задач в фоновом режиме.Иметь таблицу очередей, в которой вы сохраняете входные данные со стороны сети, а затем есть служба, которая опрашивает таблицу на предмет работы и обрабатывает входные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...