Как использовать RoleEnvironment.CurrentRoleInstance.Идентификатор в файле _LogOnPartial.cshtml или _Layout.cshtml?

#c# #asp.net-mvc-3 #razor

#c# #asp.net-mvc-3 #razor

Вопрос:

Я не могу использовать RoleEnvironment.CurrentRoleInstance.Идентификатор в файле cshtml mvc 3 razor. Ошибка для RoleEnvironment говорит о том, что он не существует в текущем контексте. Тем не менее, я добавил пространство имен, как показано ниже, в файл web.config папки Views. Обратите внимание, что «Microsoft.WindowsAzure.Пространство имен ServiceRuntime» добавляется в качестве последнего пространства имен. Не могли бы вы, пожалуйста, сообщить мне, как это исправить? Я хочу выводить идентификатор текущего экземпляра в верхней части страницы для каждой страницы без необходимости кодирования на всех страницах.

Ответ №1:

Значит, его компиляция и выполнение корректны? Вы уверены, что запускаете проект Azure (чтобы он запускался под эмулятором вычислений), а не запускаете сайт напрямую для отладки?

Я только что попробовал, и у меня все работает нормально, пришлось добавить это в конфигурацию:

 <system.web>
<compilation debug="true" targetFramework="4.0">
  <assemblies>
      <add assembly="Microsoft.WindowsAzure.ServiceRuntime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  

И мой вид _Layout.cshtml:

 @using Microsoft.WindowsAzure.ServiceRuntime
@RenderBody()
@RoleEnvironment.CurrentRoleInstance.Id
  

И в моей отладке я получаю что-то вроде (AzureDelete было именем моего проекта):

развертывание (1).AzureDelete.MvcWebRole1_IN_0