WebRole срещу WorkerRole

Здравейте, прилагам TCPIP слушател в Azure WorkerRole. WorkerRole слуша за входящи TCP данни и ги съхранява в Azure Table Storage.

Всичко работи добре, когато правя това в Run() на WorkerRole.

Но когато прилагам същото нещо в Run() на WebRole, получавам съобщение „WebIIS е излязъл“ и режимът за отстраняване на грешки излиза в среда за разработка.

Защо е това?

Може ли някой да обясни къде WebRole се различава от WorkerRole? Можем ли да внедрим TCPIP слушател, който непрекъснато слуша в WebRole?

Благодаря Анил


person Anil Maddala    schedule 04.05.2012    source източник
comment
Вашият приемник на порт на същия порт ли е като IIS?   -  person Richard Astbury    schedule 04.05.2012
comment
@RichardAstbury Не. И Http, и TCP са на различни портове   -  person Anil Maddala    schedule 04.05.2012


Отговори (3)


Само си помислете, че WebRole работи като уеб приложение. като получи заявка, след това връща отговор, докато Worker Role работи като услуга на Windows. Въпреки че и двамата могат да предават TPC съобщения, те се различават по начина, по който го предават. Докато обработвате заявката, ще бъде достъпна само уеб роля. Ролята Worker ще бъде достъпна постоянно. Ако искате уеб роля непрекъснато да слуша TCP канал, най-вероятно е, че работната роля ще отговаря по-добре на вашите изисквания.

За разбирането,

person josemiguel.torres    schedule 04.05.2012
comment
това не е вярно Уеб ролята има RoleEntryPoint точно като работната роля и може да изпълнява всеки код по всяко време (със или без входяща заявка). - person user94559; 04.05.2012
comment
Здравей Smarx, така че въз основа на твоя отговор в stackoverflow.com/a/2610895/94559, WebRole = WorkerRole+IIS. Изпълнението на същия код в Run() на webrole прави уебролята нестабилна, но същият код работи добре в WorkerRoel. Каква може да е причината и има ли някаква конкретна причина, поради която смятате, че ролята на работник е най-подходяща в този случай? - person Anil Maddala; 04.05.2012

Моят отговор на подобен въпрос: https://stackoverflow.com/a/2610895/94559

Накратко, уеб ролите са за IIS, а работните роли са за всичко останало. В този случай мисля, че искате роля на работник.

person user94559    schedule 04.05.2012
comment
Здравей Smarx, така че въз основа на твоя отговор в stackoverflow.com/a/2610895/94559, WebRole = WorkerRole+IIS. Изпълнението на същия код в Run() на webrole прави уебролята нестабилна, но същият код работи добре в WorkerRoel. Каква може да е причината и има ли някаква конкретна причина, поради която смятате, че ролята на работник е най-подходяща в този случай? - person Anil Maddala; 04.05.2012
comment
Да Уеб роля == Работна роля + IIS. Зависи какъв е този код. Каква е грешката, която получавате? Едно нещо, за което трябва да внимавате, е, че в уеб роля IIS се свързва с (вярвам) всички ваши входни крайни точки, така че ако се опитвате да се свържете с нещо и получавате грешка, това може да е, защото IIS вече е хванал порта . - person user94559; 04.05.2012
comment
В машината за разработка продължавам да получавам грешката, WaIISHost.exe: Managed (v4.0.30319)' е излязъл с код -66053 (0xfffefdfb) - person Anil Maddala; 04.05.2012
comment
Има подобна тема в social .msdn.microsoft.com/Forums/en-ZA/windowsazuredevelopment/, което може да помогне. Въпреки това използва роля на работник. - person Ming Xu - MSFT; 07.05.2012

Какво е роля на облачна услуга на Azure?

В Azure ролята на облачна услуга е колекция от управлявани, балансирани на натоварване виртуални машини платформа като услуга, които работят заедно, за да изпълняват общи задачи. Ролите на облачните услуги се управляват от контролера на Azure fabric и осигуряват най-добрата комбинация от мащабируемост, контрол и персонализиране

Какво е уеб роля?

Уеб ролята е роля на облачна услуга в Azure, която е конфигурирана и персонализирана за изпълнение на уеб приложения, разработени на езици/технологии за програмиране, които се поддържат от Интернет информационни услуги (IIS), като ASP.NET, PHP, Windows Communication Foundation и Fast CGI.

Какво е работна роля?

Работническа роля е всяка роля в Azure, която изпълнява приложения и задачи на ниво услуги, които обикновено не изискват IIS. В работните роли IIS не е инсталиран по подразбиране. Те се използват главно за извършване на поддържащи фонови процеси заедно с уеб ролите и изпълняват задачи като автоматично компресиране на качени изображения, стартиране на скриптове, когато нещо се промени в базата данни, получаване на нови съобщения от опашка и процес и др.

person Pankaj Rawat    schedule 27.11.2017