Запуск (локальной) рабочей роли Azure из общего сетевого ресурса - PullRequest
2 голосов
/ 30 января 2012

Я полный новичок, когда речь заходит о разработке на Azure (или вообще, о том, что связано с Windows и .Net), поэтому, пожалуйста, потерпите меня ...


Я неЯ не использую Windows изо дня в день, поэтому для этого проекта я установил экземпляр Windows 7 VirtualBox, в котором нужно заниматься разработкой.У меня есть каталог с кодом моей операционной системы, совместно используемый с виртуальной машиной, и виртуальная машина смонтирована как сетевой ресурс (который отображается как E:\ или \\VBOXSVR\ в зависимости от ...?).

Проблема, с которой я сталкиваюсь, заключается в том, что при попытке запустить мою рабочую роль на эмуляторе вычислений Azure она умирает со следующей ошибкой:

Microsoft.WindowsAzure.ServiceRuntime Critical: 201 : Role entrypoint could not be created:
System.IO.FileLoadException: Could not load file or assembly 'file://\\VBOXSVR\XXX\YYY\csx\Debug\roles\WorkerRole\approot\WorkerRole.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file://\\VBOXSVR\XXX\YYY\csx\Debug\roles\WorkerRole\approot\WorkerRole.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CreateRoleEntryPoint(RoleType roleTypeEnum)
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeRoleInternal(RoleType roleTypeEnum)

После эта ссылка дает вам страницу с надписью добавить:

<loadFromRemoteSources enabled="true" />

в ваш файл конфигурации.Я добавил его в app.config рабочей роли, оставив мне:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <loadFromRemoteSources enabled="true"/>
    </runtime>
    ... 
</configuration>

, но, когда я пытаюсь его запустить, я получаю то же сообщение об ошибке.

1 Ответ

0 голосов
/ 31 января 2012

Я не запускаю свой проект Azure на виртуальной машине, но исходный код на хост-компьютере. Но, насколько я знаю, локальному эмулятору Azure нужны права администратора. Это может быть причиной, я думаю, так как я попытался отладить приложение на моем хост-компьютере с виртуальной машины, которая просто открыла решение в папке общего доступа в VS, но не смогла.

...