Вот код, который я использую для развертывания службы в Azure,Использование библиотек управления Azure для развертывания службы. Ошибка: «Формат данного пути не поддерживается».
internal async static Task DeployCloudService(this SubscriptionCloudCredentials credentials)
{
try
{
using (var _computeManagementClient = new ComputeManagementClient(credentials))
{
Console.WriteLine("Deploying a service...");
var storageConnectionString = await GetStorageAccountConnectionString(credentials);
var account = CloudStorageAccount.Parse(storageConnectionString);
var blobs = account.CreateCloudBlobClient();
var container = blobs.GetContainerReference(ConfigurationManager.AppSettings["containerName"]);
if (!container.Exists()) { Console.WriteLine("Container not found"); };
await container.SetPermissionsAsync(
new BlobContainerPermissions()
{
PublicAccess = BlobContainerPublicAccessType.Container
});
var blob = container.GetBlockBlobReference(
Path.GetFileName(ConfigurationManager.AppSettings["packageFilePath"]));
var blob1 = container.GetBlockBlobReference(
Path.GetFileName(ConfigurationManager.AppSettings["configFilePath"]));
await _computeManagementClient.Deployments.CreateAsync(ConfigurationManager.AppSettings["serviceName"],
DeploymentSlot.Production,
new DeploymentCreateParameters
{
Label = ConfigurationManager.AppSettings["label"],
Name = ConfigurationManager.AppSettings["serviceName"],
PackageUri = blob.Uri,
Configuration = File.ReadAllText((blob1.Uri).ToString()),
StartDeployment = true
});
Console.WriteLine("Deployment Done!!!");
}
}
catch (Exception e) {
throw;
}
}
Идея заключается в том, что пакет и конфигурационный файл уже есть в сгустках в пределах некоторого контейнера, и я могу развернуть свою службу, когда я использую Configuration = File.ReadAllText(ConfigurationManager.AppSettings["configFilePath"])
(который берет файл с локального пути и работает нормально, как ожидалось), но поскольку я не хочу этого делать, я пытаюсь использовать конфигурационный файл из Azure blobs, но File.ReadAllText
не берет Uri моего файла, который я проверено в порядке и дается System.SystemException {System.NotSupportedException}
с base {"The given path's format is not supported."}
. (поскольку он ищет параметр строки)
My Question is that how can we use the config file (.cscfg) from the server
Там нет ничего, как 'DownloadText()' метода – ashishraaj
Конечно есть: https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudblockblob. downloadtext.aspx –
Тогда, возможно, это не правильный путь, так или иначе Спасибо @Gaurav. Если я получу что-нибудь, что я прокомментирую. – ashishraaj