zoukankan      html  css  js  c++  java
  • vmware开发包之vSphere Management SDK

    vSphere Management SDK关于vmware管理等相关功能的.net和java的代码示例。

    在其5.5的解压包中

    1

    eam:esx agent management表示esx虚机生产环境的代理

    sms:storage monitoring management存储监控

    spbm:storage policy based management存储策略

    ssoclient:客户端单点登录验证

    vsphere-ws:web service api

    当打开sample解决方案时会发现缺失一些dll文件。

    2

    对于Microsoft.Web.Services3.dll是微软wse3.0中的一个dll文件,可以用它来生产安全的web服务。

    下载地址http://www.microsoft.com/en-us/download/details.aspx?id=14089

    Vim25Service.dll和Vim25Service.XmlSerializers.dll以及VMWare.Vim.dll则包含了对vmware虚机的管理的api。可以安装VMware vSphere PowerCLI工具集,然后在C:WindowsAssemblyGAC_MSIL目录下找到对应的dll,下载地址https://developercenter.vmware.com/sdks

    当然在vSphere Management SDK开发包中也提供了基于web的服务接口,在...SDKvsphere-wswsdlvim25目录下,可以通过wse工具生成dll文件。

    3

    关于wse工具安装配置,安装运行时、工具集和vs工具这三个选项。

    5

    这里提供两种编译方式,一种是通过tool工具中的WseWsdl3.exe,一种是vs扩展工具。

     安装完成后,打开vs的dos窗口,依次执行下方几个步骤。

    生成VimService25.dll和VimService25.XmlSerializers.dll

    1.生成cs文件。

    wsdl.exe /n:Vim25Api /o:d:sdkdllVimService.cs d:sdkdllvimService.wsdl d:sdkdllvim.wsdl

    2.编译cs文件。

    csc /t:library /out:d:sdkdllVimService25.dll d:sdkdllVimService.cs

    3.生成序列化文件。这一过程需要比较长的时间。

    sgen /p d:sdkdllVimService25.dll

    4.打开原先cs文件,将[System.Xml.Serialization.XmlIncludeAttribute(typeof...开头的文件注释掉 => //[System.Xml.Serialization.XmlIncludeAttribute(typeof...再重新编译cs文件。因为加上这些引用类,会导致每次示例化VimService非常慢,长达一分钟以上导致超时。

    我们查看PowerCLI自带的VimService25.dll,反编译可以看到VimService类的头文件:

    [GeneratedCode("wsdl", "2.0.50727.42"), DesignerCategory("code"), DebuggerStepThrough, WebServiceBinding(Name = "VimBinding", Namespace = "urn:vim25"), XmlSerializerAssembly(AssemblyName = "VimService25.XmlSerializers")]

    我们通过wsdl编译的头文件:

    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="VimBinding", Namespace="urn:vim25")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ReadEnvironmentVariableInGuestRequestType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TerminateProcessInGuestRequestType))]
    ......

    于是我们注释掉[System.Xml.Serialization.XmlIncludeAttribute(typeof...,再加上[System.Xml.Serialization.XmlSerializerAssembly(AssemblyName = "VimService25.XmlSerializers")]。

    生成STSService.dll

    1.cd到wse工具。

    cd C:Program Files (x86)Microsoft WSEv3.0Tools

    2.生成cs文件。此处在末尾加上所有wsdl文件。

    WseWsdl3.exe /o:c:STSService.cs /type:webClient c:	estSTSService.wsdl c:	estprofiled-saml-schema-assertion-2.0.xsd c:	estprofiled-saml-schema-assertion-2.0-extensions.xsd c:	estprofiled-saml-schema-assertion-2.0-types.xsd c:	estprofiled-sstc-saml-delegation.xsd c:	estprofiled-wsse-header.xsd c:	estprofiled-wss-wssecurity-utility-1.0.xsd c:	estprofiled-ws-trust.xsd c:	estws-addr.xsd c:	estws-trust-1.4-extensions.xsd c:	estxmldsig-core-schema.xsd

    3.编译cs文件。此处需要引用Microsoft.Web.Services3.dll。

    csc /t:library /out:c:STSService.dll c:STSService.cs /reference:"C:Program Files (x86)Microsoft WSEv3.0Microsoft.Web.Services3.dll"

    在编译STSService.dll的过程中可能会出现下图警告。这代表需要安装.net framework v2.0 sdk这么个东西,注意并非.net framework 2.0。

    6

    安装完成重新引用生产的dll文件,这时候有点要注意,sample里面的项目采用.net framework 3.5,这取决于你编译dll的版本,可以更改项目版本或者采用对应的编译环境即可。

    另外在sample中有两种客户端登录方式。一种被称为过时的,实际上VMA代理实例,另一种就是SSO。

    8

    不过SSO在sample的wsdl提供的api中却没有提供sso的接口。缺少部分类方法。所以注释掉sso的验证代码。

    9

  • 相关阅读:
    解决WordPress不能发邮件,WordPress 无法发送邮件
    WordPress 显示 Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097160 bytes)解决办法
    怎么优雅的取消重复请求ajax
    手拉手搭建一个脚手架
    数据库隔离级别RC与RR区别——MVCC、ReadView
    整理一下下一步的计划
    减肥
    EBS: Shift + F6: 当复制上行记录
    Oracle 表值函数之多表关联使用
    EBS: 序号授权 GRANT
  • 原文地址:https://www.cnblogs.com/yuefei/p/3600441.html
Copyright © 2011-2022 走看看