Как получить доступ к данным WebRole со страницы .aspx? - PullRequest
0 голосов
/ 21 марта 2012

Привет! Я работаю над TCP / IP в Windows Azure и могу успешно разработать TCP-клиента для отправки и веб-роль для получения данных TCP.

Я хочу отобразить полученные данные на странице .aspx. Как мне получить доступ к данным веб-ролей со страницы .aspx?

UPDATE:

Я посмотрел на архитектуру MVC и понял ход.

У меня вопрос, как я могу получить данные в контроллер из файла Webrole.cs / WorkerRole.cs. Я использую следующий код для получения данных TCP: msdn.microsoft.com/en-us/hh285885

1 Ответ

0 голосов
/ 21 марта 2012

В любом случае (веб или рабочая роль) есть одно общее решение - использовать промежуточное хранилище для данных, которые вы хотите перенести.Для рабочей роли - очевидно, сама рабочая роль отличается от веб-роли, поэтому прямой связи между ними нет.Для веб-роли это почти такая же ситуация. Ваш WebRole.cs создается в другом процессе (WaIISHost.exe), чем ваше веб-приложение (w3wp.exe) .

Итак, общее решение - используйте промежуточное хранилище для ваших данных.Вы можете найти различные подходы к тому, как общаться между различными ролями здесь и здесь ).В зависимости от ваших конкретных требований, вам может быть даже проще использовать Azure Table Storage Serivce для хранения данных из TCP, а затем читать таблицу из контроллера.Возможно, вам даже потребуется использовать Azure Storage Queues .

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

ОБНОВЛЕНИЕ

Привет, часть чтения данных сделана в Webrole для моего приложения в функции Run ().

Ну, Ваша функция запуска не имеет прямой связи с вами rcontroller.Так что я не знаю, что вы там читаете, если вам нужны только данные в контроллере.

Я думаю, вы должны пересмотреть свою основную архитектуру приложения.Метод вашего контроллера (он же Action) выполняется только после того, как из вашего клиентского браузера поступил правильный HTTP-запрос к вашему приложению.Я не вижу причин, по которым вы бы прочитали данные до их запроса.Особенно быстро меняющиеся данные.Просто дождитесь запроса от браузера (который также может быть запросом AJAX) и затем прочитайте данные.Вы могли бы иметь хорошую стратегию ключей разделов / строк, чтобы вы могли хранить данные, считанные в локальном кэше приложения, и читать только то, что еще не было прочитано.Или просто удалить из таблицы, как только данные прочитаны?Не знаю общих требований к приложениям, семантики и архитектуры.

Что касается другого вашего вопроса:

Если я реализую часть чтения данных в контроллере ASP.net MVC, чтобудет ли работать вебролл?

Ну, ваш "webrole.cs" просто так, чтобы Windows Azure Fabric Controller знал, что ваше веб-приложение работает и работает.Вы можете оставить его полностью пустым (не для реализации)!В самом классе RoleEntryPoint есть реализация метода Run () по умолчанию, которая представляет собой просто бесконечный сон, без вреда для кого-либо.

...