将Azure文件服务CloudFileShare映射为每个云服务实例上的虚拟目录

周杰伦

我有一个天蓝色的云服务,我正在尝试升级该服务以获得高可用性,并且我已订阅了已在预览门户中启用的Microsoft Azure文件服务预览。我创建了一个新的存储帐户,可以看到该存储帐户现在具有位于以下位置的“文件”端点:

https://<account-name>.file.core.windows.net/

在我的Web角色中,我有以下代码来查看是否创建了名为scorm的共享,如果没有创建,则创建它:

public static void CreateCloudShare()
{
    CloudStorageAccount account = CloudStorageAccount.Parse(System.Configuration.ConfigurationManager.AppSettings["SecondaryStorageConnectionString"].ToString());
    CloudFileClient client = account.CreateCloudFileClient();
    CloudFileShare share = client.GetShareReference("scorm");
    share.CreateIfNotExistsAsync().Wait();
}

这没有问题。我的问题是我不确定如何在Cloud Service中映射作为虚拟目录创建的CloudShare。在一个实例上,我能够做到这一点:

public static void CreateVirtualDirectory(string VDirName, string physicalPath)
{
    try
    {

        if (VDirName[0] != '/')
            VDirName = "/" + VDirName;

        using (var serverManager = new ServerManager())
        {
            string siteName = RoleEnvironment.CurrentRoleInstance.Id + "_" + "Web";
            //Site theSite = serverManager.Sites[siteName];
            Site theSite = serverManager.Sites[0];
            foreach (var app in theSite.Applications)
            {
                if (app.Path == VDirName)
                {
                    // already exists
                    return;
                }
            }
            Microsoft.Web.Administration.VirtualDirectory vDir = theSite.Applications[0].VirtualDirectories.Add(VDirName, physicalPath);
            serverManager.CommitChanges();
        }
    }
    catch (Exception ex)
    {
        System.Diagnostics.EventLog.WriteEntry("Application", ex.Message, System.Diagnostics.EventLogEntryType.Error);
        //System.Diagnostics.EventLog.WriteEntry("Application", ex.InnerException.Message, System.Diagnostics.EventLogEntryType.Error);
    }
}

我已经查看并看到可以通过powershell进行映射,但是我不确定如何在Web角色中调用代码。我添加了以下方法来运行powershell代码:

public static int ExecuteCommand(string exe, string arguments, out string error, int timeout)
{
    Process p = new Process();
    int exitCode;
    p.StartInfo.FileName = exe;
    p.StartInfo.Arguments = arguments;
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardError = true;
    p.Start();
    error = p.StandardError.ReadToEnd();
    p.WaitForExit(timeout);
    exitCode = p.ExitCode;
    p.Close();

    return exitCode;
}

我知道我必须运行的命令是:

net use z: \\<account-name>.file.core.windows.net\scorm /u:<account-name> <account-key>

如何在我的网络角色中使用它?我的网络角色代码如下,但似乎不起作用:

public override bool OnStart()
{
    try
    {

        CreateCloudShare();
        ExecuteCommand("net.exe", "user " + userName + " " + password + " /add", out error, 10000);
        ExecuteCommand("netsh.exe", "firewall set service type=fileandprint mode=enable scope=all", out error, 10000);
        ExecuteCommand("net.exe", " share " + shareName + "=" + path + " /Grant:" + userName + ",full", out error, 10000);

    }
    catch (Exception ex)
    {
        System.Diagnostics.EventLog.WriteEntry("Application", "CREATE CLOUD SHARE ERROR : " + ex.Message, System.Diagnostics.EventLogEntryType.Error);
    }
    return base.OnStart();
}
塞尔达·奥兹勒(Serdar Ozler)

我们的博客文章“持久连接到Microsoft Azure文件”提供了一个示例,该示例从Web和辅助角色中引用Azure Files共享。请参阅“ Windows PaaS角色”部分,并查看“ Web角色和用户上下文”下的注释。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Azure Automation通过Powershell创建云服务实例

来自分类Dev

IIS 7.5-映射到Azure文件共享的虚拟目录-无法读取配置文件

来自分类Dev

复制Azure移动服务实例

来自分类Dev

如何将两个Azure移动服务实例配置为使用相同的应用程序密钥?

来自分类Dev

使用HttpClient访问作为虚拟目录运行的Web服务

来自分类Dev

为虚拟机和Azure云服务创建的“云服务”有何关系?

来自分类Dev

使用TFS将多个项目发布到Azure上的不同虚拟目录

来自分类Dev

是否为angularjs中的每个控制器创建了新的服务实例?

来自分类Dev

在IIS上为Coldfusion Lucee创建虚拟目录

来自分类Dev

每个组件使用一个服务实例

来自分类Dev

在每个组件中提供唯一的服务实例

来自分类Dev

Service Fabric - 每个服务实例的动态资源管理

来自分类Dev

轻型目录服务实例中缺少sAMAccountName

来自分类Dev

访问远程服务器IIS7上的虚拟目录时出现运行时错误

来自分类Dev

Zuul或eureka将主机标头设置为服务实例主机

来自分类Dev

Azure 云服务包 - 在托管的 VSTS 构建服务器上找不到物理/虚拟路径

来自分类Dev

如何访问服务实例?

来自分类Dev

避免删除Azure云服务上的文件发布

来自分类Dev

Azure 虚拟目录中的多个站点

来自分类Dev

部署到 azure webApp 虚拟目录

来自分类Dev

为Azure云服务启用HTTPS(运行Linux Server的虚拟机)

来自分类Dev

为Azure云服务启用HTTPS(运行Linux Server的虚拟机)

来自分类Dev

无法覆盖虚拟目录中的文件

来自分类Dev

将Uri创建到虚拟目录

来自分类Dev

将别名虚拟目录(IIS)映射到Chrome工作区

来自分类Dev

由于信用额度而导致Azure帐户被暂停,这意味着将自动删除云服务实例部署-可以缓解吗?

来自分类Dev

在运行时将服务实例ID传递给来宾可执行文件

来自分类Dev

Azure上用于云服务的静态IP

来自分类Dev

安排Azure云服务上的IIS重置

Related 相关文章

  1. 1

    使用Azure Automation通过Powershell创建云服务实例

  2. 2

    IIS 7.5-映射到Azure文件共享的虚拟目录-无法读取配置文件

  3. 3

    复制Azure移动服务实例

  4. 4

    如何将两个Azure移动服务实例配置为使用相同的应用程序密钥?

  5. 5

    使用HttpClient访问作为虚拟目录运行的Web服务

  6. 6

    为虚拟机和Azure云服务创建的“云服务”有何关系?

  7. 7

    使用TFS将多个项目发布到Azure上的不同虚拟目录

  8. 8

    是否为angularjs中的每个控制器创建了新的服务实例?

  9. 9

    在IIS上为Coldfusion Lucee创建虚拟目录

  10. 10

    每个组件使用一个服务实例

  11. 11

    在每个组件中提供唯一的服务实例

  12. 12

    Service Fabric - 每个服务实例的动态资源管理

  13. 13

    轻型目录服务实例中缺少sAMAccountName

  14. 14

    访问远程服务器IIS7上的虚拟目录时出现运行时错误

  15. 15

    Zuul或eureka将主机标头设置为服务实例主机

  16. 16

    Azure 云服务包 - 在托管的 VSTS 构建服务器上找不到物理/虚拟路径

  17. 17

    如何访问服务实例?

  18. 18

    避免删除Azure云服务上的文件发布

  19. 19

    Azure 虚拟目录中的多个站点

  20. 20

    部署到 azure webApp 虚拟目录

  21. 21

    为Azure云服务启用HTTPS(运行Linux Server的虚拟机)

  22. 22

    为Azure云服务启用HTTPS(运行Linux Server的虚拟机)

  23. 23

    无法覆盖虚拟目录中的文件

  24. 24

    将Uri创建到虚拟目录

  25. 25

    将别名虚拟目录(IIS)映射到Chrome工作区

  26. 26

    由于信用额度而导致Azure帐户被暂停,这意味着将自动删除云服务实例部署-可以缓解吗?

  27. 27

    在运行时将服务实例ID传递给来宾可执行文件

  28. 28

    Azure上用于云服务的静态IP

  29. 29

    安排Azure云服务上的IIS重置

热门标签

归档