博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Azure Mangement API 之 更方便的使用Mangement API
阅读量:5280 次
发布时间:2019-06-14

本文共 3261 字,大约阅读时间需要 10 分钟。

许多.Net 程序员在使用Azure Management API的时候都选择参考,通过创建HttpWebRequest来创建。

或者自己创建类库来封装这些API,使之调用起来更加方便。

其实微软已经存在着这么一个已经封装好的类库了,不过由于这个类库并没有任何官方文档来对其进行说明,所以一直没有太多程序员想到去用它,这就是WindowsAzure.ServiceManagement.Client 类库。

要想使用这个类库,首先我们需要获取它, 目前我知道的获取它最新版本的方法是

1, 打开Web platform installer, 搜索windows azure powershell 并选择安装。

2, 安装完成后Powershell下面会多一个Azure文件夹,这个类库就在里面! 默认文件路径:C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure

将该dll拷贝到你的项目中并添加引用你就可以来使用他啦!

下面我们就来通过来实现 这个功能来看看,究竟该如何使用这个类库吧!

class Program   {       static void Main(string[] args)       {           try           {               Uri azrueManagementUri = new Uri("https://management.core.windows.net");               string subscriptionid = "Your subscriptionid";               X509Certificate2 cer = GetCertificate("Your certificate thumbprint");               var management = new ServiceManagementClient(azrueManagementUri,                   subscriptionid,                   cer,                   new ServiceManagementClientOptions());               CreateStorageServiceInput createStorageServiceInput = new CreateStorageServiceInput               {                   Label=EncodeTo64("dinohestorage1"),                   GeoReplicationEnabled=false,                   Location = "East Asia",                   ServiceName=" dinohestorage1"               };               management.CreateStorageService(createStorageServiceInput);               Console.WriteLine("Success!");           }           catch (ServiceManagementClientException e)           {                              throw e;           }           Console.ReadLine();                   }       static public string EncodeTo64(string toEncode)       {           byte[] toEncodeAsBytes                 = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);           string returnValue                 = System.Convert.ToBase64String(toEncodeAsBytes);           return returnValue;       }       public static X509Certificate2 GetCertificate(string cerThumbprint)       {           string certificateThumbprint = cerThumbprint;           string errorString;           if (String.IsNullOrEmpty(certificateThumbprint))           {               errorString = "CertificateThumbprint cannot be found. Please check the config file. ";               throw new Exception(errorString);           }           X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);           certificateStore.Open(OpenFlags.ReadOnly);           X509Certificate2Collection certs = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, certificateThumbprint, false);           if (certs.Count != 1)           {               errorString = "Client certificate cannot be found. Please check the config file.";               return null;           }           return certs[0];       }   }

  

通过以上代码可以发现, 这个类库中主要通过先实例化一个ServiceManagementClient类,然后调用该类中的方法来操作Azure Platform, 这正是我们需要的:

这样实现代码还有一点好处在于即使出现了错误,抛出的错误信息也非常准确。

我们可以将这个代码运行两遍来看看抛出异常的信息,当我们运行第二遍的 时候就会出现以下信息:

An exception occurred when calling the ServiceMangement API. HTTP Status code:409. Service Management Error codee: confilictError. Message:A storage account named'storage1' already exists in the subscrption

转载于:https://www.cnblogs.com/he-yuan/p/3386845.html

你可能感兴趣的文章
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>