В любом случае (веб или рабочая роль) есть одно общее решение - использовать промежуточное хранилище для данных, которые вы хотите перенести.Для рабочей роли - очевидно, сама рабочая роль отличается от веб-роли, поэтому прямой связи между ними нет.Для веб-роли это почти такая же ситуация. Ваш 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 () по умолчанию, которая представляет собой просто бесконечный сон, без вреда для кого-либо.