Frage

Ich entwickle „azur Web-Anwendung“.

Ich habe Antrieb und drivePath statische Mitglieder in WebRole wie folgt erstellt:

public static CloudDrive drive = null;
public static string drivePath = "";

Ich habe in WebRole.OnStart Entwicklung Speicherlaufwerk wie folgt erstellt:

LocalResource azureDriveCache = RoleEnvironment.GetLocalResource("cache");
        CloudDrive.InitializeCache(azureDriveCache.RootPath, azureDriveCache.MaximumSizeInMegabytes);

        CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =>
        {
            // for a console app, reading from App.config
            //configSetter(ConfigurationManager.AppSettings[configName]);
            // OR, if running in the Windows Azure environment
            configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));
        });

CloudStorageAccount account = CloudStorageAccount.DevelopmentStorageAccount;
            CloudBlobClient blobClient = account.CreateCloudBlobClient();
            blobClient.GetContainerReference("drives").CreateIfNotExist();
            drive = account.CreateCloudDrive(
                blobClient
                .GetContainerReference("drives")
                .GetPageBlobReference("mysupercooldrive.vhd")
                .Uri.ToString()
            );
            try
            {
                drive.Create(64);
            }
            catch (CloudDriveException ex)
            {
                // handle exception here
                // exception is also thrown if all is well but the drive already exists
            }

string path = drive.Mount(azureDriveCache.MaximumSizeInMegabytes, DriveMountOptions.None);
            IDictionary<String, Uri> listDrives = Microsoft.WindowsAzure.StorageClient.CloudDrive.GetMountedDrives(); 
            drivePath = path;

Der Antrieb hält sichtbar und zugänglich bis Umfang Ausführung bleibt in WebRole.OnStart, sobald die Ausführung Umfang verlassen WebRole.OnStart, Laufwerk nicht mehr verfügbar ist von der Anwendung und statischen Mitgliedern erhält zurückgesetzt (wie drivePath auf „“ gesetzt werden)

Bin ich eine Konfiguration oder einen anderen Fehler fehlt?

War es hilfreich?

Lösung 2

ich die Lösung gefunden:

In der Entwicklungsmaschine, Antrag auf localhost stammt, die das System zum Absturz zu machen. Kommentiert "Seiten" tag in ServiceDefinition.csdef, wird das Problem behoben.

Andere Tipps

Wo ist der andere Code, wo Sie erwarten drivePath zu benutzen? Ist es in einer Web-Anwendung?

Wenn ja, verwenden Sie SDK 1.3? In SDK 1.3 ist der Standardmodus für eine Web-Anwendung unter Voll IIS ausgeführt werden, was bedeutet, in einer separaten Anwendungsdomäne von Ihrem RoleEntryPoint Code ausgeführt wird (wie OnStart), so dass Sie nicht statische Variablen für die beiden anderen teilen können. Wenn dies das Problem ist, könnten Sie diesen Code für die Initialisierung zu Application_Begin in Global.asax.cs Bewegen statt (die in der Web-Anwendung App-Domain ist).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top