Domanda

Sto sviluppando "applicazione web azzurro".

Ho creato membri statici di azionamento e drivePath in WebRole come segue:

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

Ho creato unità di archiviazione di sviluppo in WebRole.OnStart come segue:

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;

L'unità mantiene visibile ed accessibile sino portata esecuzione rimangono in WebRole.OnStart, non appena portata esecuzione ferie WebRole.OnStart, azionamento diventa disponibile dall'applicazione e membri statici reimpostato (come drivePath ottenere impostato su "")

Mi manca un po 'di configurazione o qualche altro errore?

È stato utile?

Soluzione 2

ho trovato la soluzione:

In macchina di sviluppo, richiesta di origine per il localhost, che stava facendo il sistema in crash. Commentando "Siti" tag nel ServiceDefinition.csdef, risolve il problema.

Altri suggerimenti

Dov'è l'altro codice in cui ci si aspetta di utilizzare drivePath? E 'in un'applicazione web?

Se è così, stai usando SDK 1.3? In SDK 1.3, la modalità predefinita per un'applicazione web è per l'esecuzione in piena IIS, il che significa in esecuzione in un dominio applicazione separata dal codice RoleEntryPoint (come OnStart), quindi non è possibile condividere le variabili statiche tra i due. Se questo è il problema, si potrebbe considerare di spostare questo codice di inizializzazione per Application_Begin in Global.asax.cs invece (che è nel dominio applicazione dell'applicazione Web).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top