Почему моя служба Azure WCF никогда не переходит из состояния занятости в состояние готовности? - PullRequest
1 голос
/ 04 ноября 2010

У меня есть рабочая служба WCF и рабочая роль, которую я отлаживал локально в Azure Development Fabric.Все хорошо, но теперь, когда я пытаюсь развернуть его в облаке в промежуточной среде, я вижу некоторые странные проблемы.

  1. Моя рабочая роль, которая намного сложнее, чемсервис, работает отлично.Он идет из Инициализация -> Занят -> Готов.
  2. Однако моя роль службы переходит из Инициализация -> Занят, и затем статус никогда не меняется.

Я прочиталНесколько статей о Initialize -> Busy -> Stopping loop, но это не то поведение, которое я вижу.Фактически, когда я пытаюсь использовать IntelliTrace, я не могу получить доступ к каким-либо журналам для службы, потому что она никогда не переходит в статус Unresponsive.Я могу получить доступ к журналам для успешно загруженной рабочей роли.

Как мне решить эту проблему, если я не вижу никаких журналов или подключаю отладчик, чтобы выяснить, что происходит?Опять же, этот сервис работает абсолютно нормально в моей локальной среде.

И прежде чем кто-либо предложит это, я уже сделал следующее:

  1. Проверьте DiagnosticsConnectionString и убедитесь, что этоподключен к моей учетной записи хранения
  2. Включить IntelliTrace в развертывании.
  3. Проверьте все сборки, на которые имеются ссылки, чтобы убедиться, что сборки, отличные от .NET, «скопированы в local = true»

Было бы здорово, если бы Azure выставил какую-то консоль, чтобы я мог видеть, что происходит.

Ответы [ 3 ]

1 голос
/ 05 ноября 2010

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

В этом случае у вашей роли даже не будет возможности что-то сказать IntelliTrace или любому регистратору.(он не загружен).

Например, если в вашем файле web.config есть раздел конфигурации uri, он может работать локально, но заставит Azure заморозить веб-развертывание в рабочей среде.Исправьте (в данном случае):

добавьте следующую строку в конфигурацию / configsections:

<section name="uri" type="System.Configuration.UriSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

Ваш случай может отличаться.Просто найдите любые необычные конфигурации или случаи, когда схема может быть неизвестна гостевой ОС Azure, с которой вы работаете.

1 голос
/ 04 ноября 2010

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

Пока вы можете связаться со службой поддержки, и они должны быть в состоянии помочь.

Обычно "Занято" - это состояние, в котором вы находитесь, пока выполняете код в OnStart (). Есть ли вероятность того, что ваша реализация OnStart () не вернется? (Или, может быть, какой-то конструктор?)

0 голосов
/ 06 ноября 2010

У меня была такая же проблема, и я начал с пустого проекта. Приступай к работе в облаке. Добавлено несколько строк, развертывающих.

В конце концов (после 10 развертываний ... вы знаете, сколько времени это займет ???), я заработал ... и причина была в файле конфигурации Я не проследил это до одной строки.

Обращение в службу поддержки будет правильным решением, как предлагает smarx.

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