【问题标题】:Windows Azure creating virtual directory to local storageWindows Azure 为本地存储创建虚拟目录
【发布时间】:2012-06-26 14:56:21
【问题描述】:

我在创建指向 Windows Azure(生产环境)中本地存储的虚拟目录方面需要帮助。我可以手动设置一个虚拟目录,但每次重新启动 Azure 时都会删除它。线索是当我在 Azure 上上传我的项目包时,通过配置文件创建虚拟目录。问题是如何创建这样的目录,使其指向本地存储。

如有任何建议,请提前致谢。

最好的问候,

黑暗

【问题讨论】:

    标签: azure directory virtual storage local


    【解决方案1】:

    我建议你通过在WebRole的OnStart方法中与IIS交互来创建虚拟目录:

    public class WebRole : RoleEntryPoint
    {
        public override bool OnStart()
        {
            // Connect to the IIS site.
            using (var manager = new Microsoft.Web.Administration.ServerManager())
            { 
                    var localResourcePath = RoleEnvironment.GetLocalResource("MyResource").RootPath;
    
                // Add to the root application.
                var rootSite = manager.Sites[RoleEnvironment.CurrentRoleInstance.Id + "_Web"];
                var rootApplication = rootSite.Applications["/"];
                    rootApplication.VirtualDirectories.Add("/myVdir", localResourcePath);
    
                    // Save
                manager.CommitChanges();
            }
    
            ...
        }
    }
    

    如果我是对的,您需要将执行上下文设置为 elevated 才能正常工作。您可以在 ServiceDefintion.csdef 中执行此操作:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="MyProject" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-05.1.7">
      <WebRole name="MyRole" vmsize="Small" enableNativeCodeExecution="true">
        <Runtime executionContext="elevated" />
        ...
      </WebRole>
    </ServiceDefinition>
    

    注意:您需要参考 Microsoft.Web.Administration.dll (C:\Windows\System32\inetsrv)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-22
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多