Это определенно правильный пример кода. Вы должны установить все это в роли, но НЕ в своем веб-приложении.
ПРИМЕЧАНИЕ. Поскольку Azure теперь имеет полный IIS, контекст отличается между RoleEntryPoint On_start и веб-приложением, которое выполняется в собственном рабочем пуле в IIS.
Просто быстрый контрольный список здравомыслия:
- Код, который вы пишете, находится в вашем классе, который наследуется от RoleEntryPoint (обычно WebRole.cs НЕ в Global.asax)?
- Вы запускаете проект в эмуляторе Azure (случайно не запускаете веб-проект напрямую?)
Если вы запускаете приложение в эмуляторе Azure или развертываете в самом Azure, RoleEnvironment доступно из приложения IIS, если у вас есть соответствующая ссылка на DLL. Если вы можете построить с помощью RoleEnvironment.IsAvailable в своем коде, то библиотеки включены. Единственное, о чем я могу думать, это то, что вы запускаете веб-сайт напрямую, а не в эмуляторе Azure.
Установите проект Cloud для запуска в Visual Studio, и вы должны быть золотым.