Не могу прочитать конфигурацию.RoleEnvironment может быть недоступен из-за уровня защиты - PullRequest
1 голос
/ 19 марта 2012

Это мой первый лазурный проект, и я не уверен, что делаю что-то не так.Я пытаюсь получить некоторую конфигурацию внутри веб-ролика MVC 3, и для этого я использую:

RoleEnvironment.GetConfigurationSettingValue(KeyName)

Когда я запускаю приложение на эмуляторе, я получаю его ошибку:

BC30451: 'RoleEnvironment' is not declared. It may be inaccessible due to its protection level.

Я попытался добавить полное пространство имен следующим образом:

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue(KeyName)

И я получаю эту ошибку:

BC30456: 'ServiceRuntime' is not a member of 'WindowsAzure'.

Однако я могу получить доступ к RoleEnvironment внутри события "OnStart"класс WebRole.Итак, это ожидаемое поведение?Если да, то как мне читать конфигурацию во всем проекте?

Заранее спасибо;

Ответы [ 3 ]

1 голос
/ 20 марта 2012

Я начал новое решение, основанное на предложении seanost, и оно работало хорошо, поэтому я решил, что проблема не в VS.После нескольких попыток и ошибок я наконец нашел решение, но у меня просто нет объяснения: -)

В моем проекте MVC у меня есть папка с именем App_Code.Поскольку я пришел из разработки веб-форм, я использую это имя, поэтому я создал эту папку, чтобы сохранить некоторые классы.Если я пытаюсь получить доступ к «RoleEnviroment» из класса внутри этой папки, проект компилируется, но даже не открывается, независимо от того, что я пытаюсь получить к нему доступ, выдает ту же ошибку.

Если я переименую папку илипереместите файлы в другую папку (скажем, «Код»), это просто работает.Как я уже говорил, я просто не знаю, почему это происходит (и сейчас это не имеет значения: -)

1 голос
/ 20 марта 2012

Вы добавили ссылку на сборку Microsoft.WindowsAzure.ServiceRuntime в своем проекте MVC?

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.aspx

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

Между прочим, если вы используете шаблоны Azure в Visual Studio, ссылки на следующие пространства имен включены по умолчанию, поэтому нет необходимости устанавливать для параметра Копировать локально значение true:

  • Microsoft.WindowsAzure.Diagnostics
  • Microsoft.WindowsAzure.ServiceRuntime
  • Microsoft.WindowsAzure.StorageClient

Чтобы убедиться, что Visual Studio и SDK установлены правильно, вы должны сделать следующее: создать новый проект MVC3 Azure, добавить директиву using для библиотеки ServiceRuntime в контроллере Home, а затем добавить следующее код в действии Index:

ViewBag.configValue = RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString");
return View();

Затем добавьте следующий синтаксис Razor в представление:

<p>@ViewBag.configValue;</p>

И вы должны получить следующий результат в вашем браузере:

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