2

Windows Azure (運用環境) のローカル ストレージを指す仮想ディレクトリの作成についてサポートが必要です。仮想ディレクトリを手動で設定できますが、Azure を再起動するたびに仮想ディレクトリが消去されます。手がかりは、Azure にプロジェクトのパッケージをアップロードするときに、構成ファイルを介して仮想ディレクトリを作成することです。問題は、ローカル ストレージを指すようにそのようなディレクトリを作成する方法です。

提案がある場合は、事前に Thx.

よろしくお願いします、

ダレク

4

1 に答える 1

5

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();
        }

        ...
    }
}

私が正しければ、これを機能させるには、実行コンテキストを昇格に設定する必要があります。これは、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)を参照する必要があります

于 2012-06-25T11:07:11.460 に答える