Я знаю, старый поток ... но, тем не менее, ответ может быть полезен кому-то.
Похоже, что рабочий процесс Azure выполняется под пользовательским пользователем (отображается как GUID в taskmgr).Эта учетная запись пользователя выглядит довольно ограниченной и не имеет доступа для чтения к файловой системе (даже внутри каталога подходов).
Мое решение состояло в том, чтобы создать сценарий запуска для роли Azure (см. Статью msdn).), который использует icacls для добавления прав доступа к файлам.В этом случае я создал файл с именем startup \ Install.cmd в моем проекте, содержащий следующее:
@echo off
if "%EMULATED%"=="true" goto :EOF
echo Allowing access to files
cd directory_where_files_exist
icacls *.* /grant Everyone:F
В моем файле ServiceDefinition.csdef я указываю системе развертывания Azure запускать этот сценарий запуска во времяразвертывание, поместив его в определение роли (например, ):
<Startup>
<Task executionContext="elevated" commandLine="startup\Install.cmd">
<Environment>
<Variable name="EMULATED">
<RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
</Variable>
</Environment>
</Task>
</Startup>
Переменная «EMULATED» устанавливается при запуске эмулятора - обратите внимание, что в приведенном выше файле запуска / Install.cmd япропустите изменение разрешения при запуске в эмуляторе.