2014-06-26 1 views
1

Я пытаюсь запустить приложение Azure с использованием эмулятора Azure. У меня есть рабочая роль, и я переопределил метод Run().Получить путь приложения к роли рабочего Azure Run()

В моем коде мне нужен физический путь рабочей роли или проекта.

Я попытался использовать Environment.GetEnvironmentVariable («TempFolder») и HttpRuntime.AppDomainAppPath, но оба возвратили null.

Есть ли у вас какие-либо советы по получению физического пути к роли работ Run()?

ответ

1

Роли рабочих не сохраняются во временных папках, и их не рекомендуется использовать. Для локального хранилища вы должны использовать Local Resources. Вы должны заранее настроить эти ресурсы.

И получить фактический путь к папке, используйте этот код:

RoleEnvironment.GetLocalResource("ResourceName").RootPath; 

Где «ResourceName» это имя настроенного локального ресурса.

Немного больше Описание here

0

Физическая папка/путь ролей Azure Worker можно получить с помощью RoleRoot переменной окружения - это работает как для локальных развертываний (т.е. работает в режиме отладки) и на самой Azure. Обратите внимание, что все содержимое, добавленное к вашим рабочим ролям через Visual Studio, находится в папке AppRoot.

Например, если вы это имели в Visual Studio:

MyWork.AzureWorkerProject 
-- Roles 
---- MyWork.AzureWorkerProject.WorkerRole 
------ images 
-------- test.png 

Следующий код должен вернуть вам правильный путь к файлу для test.png, независимо от того, что вы работаете в разработчике локально или в облако.

string appRoot = Environment.GetEnvironmentVariable("RoleRoot"); 
string fullPath = Path.Combine(appRoot + @"\", @"AppRoot\images\test.png"); 

Дальнейшее чтение, если вы заинтересованы, можно найти here и here.