程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> vmware開發包之vSphere Management SDK,vmwarevsphere

vmware開發包之vSphere Management SDK,vmwarevsphere

編輯:C#入門知識

vmware開發包之vSphere Management SDK,vmwarevsphere


原文地址:http://www.cnblogs.com/yuefei/p/3600441.html

原文寫的挺好的,我這裡增加了一些細節。來幫助像我這樣的小白,明明按照說明來,可還是不對

 

准備:

vSphere Management SDK

Microsoft Visual Studio 2008

Web Services Enhancements (WSE) 3.0 for Microsoft .NET

.net framework v2.0 sdk

 MicrosoftSqlServerSString

注意:

    .net framework v2.0 sdk 不是 .net framework v2.0
    .net framework v2.0 sdk要安裝自己的對應版本,如64位系統,安裝32的.net framework v2.0 sdk是沒有用的     安裝Web Services Enhancements (WSE) 3.0 for Microsoft .NET選擇custom     

 

 

Management SDK說明:

vSphere Management SDK關於vmware管理等相關功能的.net和java的代碼示例。

在其5.5的解壓包中

eam:esx agent management表示esx虛機生產環境的代理

sms:storage monitoring management存儲監控

spbm:storage policy based management存儲策略

ssoclient:客戶端單點登錄驗證

vsphere-ws:web service api

 

當打開sample解決方案時會發現缺失一些dll文件。

對於Microsoft.Web.Services3.dll是微軟wse3.0中的一個dll文件,可以用它來生產安全的web服務。

安裝Web Services Enhancements (WSE) 3.0 for Microsoft .NET後歎號即可消失

 

解決辦法:

Vim25Service.dll

Vim25Service.XmlSerializers.dll

當然在vSphere Management SDK開發包中也提供了基於web的服務接口,在...SDK\vsphere-ws\wsdl\vim25目錄下,可以通過wse工具生成dll文件。

關於wse工具安裝配置,安裝運行時、工具集和vs工具這三個選項。

 

這裡提供兩種編譯方式,一種是通過tool工具中的WseWsdl3.exe,一種是vs擴展工具。

 安裝完成後,打開vs的dos窗口,依次執行下方幾個步驟。

生成Vim25Service.dll和Vim25Service.XmlSerializers.dll

1.生成cs文件。

wsdl.exe /n:Vim25Api /o:d:\sdk\dll\VimService.cs d:\sdk\dll\vimService.wsdl d:\sdk\dll\vim.wsdl

2.編譯cs文件(生成Vim25Service.dll)。

csc /t:library /out:d:\sdk\dll\Vim25Service.dll d:\sdk\dll\VimService.cs

3.生成序列化文件(Vim25Service.XmlSerializers.dll)。這一過程需要比較長的時間。

sgen /p d:\sdk\dll\Vim25Service.dll

4.到這裡還沒有結束

我們打開wsdl編譯的文件VimService.cs:

 

 
[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))]
......
public partial class VimService : System.Web.Services.Protocols.SoapHttpClientProtocol{
 

於是我們注釋掉所有[System.Xml.Serialization.XmlIncludeAttribute(typeof...,

此步可以使用vs的全部替換功能來完成,大概有6478項,一定要用工具

然後我們在

public partial class VimService : System.Web.Services.Protocols.SoapHttpClientProtocol

 

前面增加一行,內容如下

[System.Xml.Serialization.XmlSerializerAssembly(AssemblyName = "VimService25.XmlSerializers")]。 

 

 

生成STSService.dll

1.cd到wse工具。

cd C:\Program Files (x86)\Microsoft WSE\v3.0\Tools

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

WseWsdl3.exe /o:c:\STSService.cs /type:webClient c:\test\STSService.wsdl c:\test\profiled-saml-schema-assertion-2.0.xsd c:\test\profiled-saml-schema-assertion-2.0-extensions.xsd c:\test\profiled-saml-schema-assertion-2.0-types.xsd c:\test\profiled-sstc-saml-delegation.xsd c:\test\profiled-wsse-header.xsd c:\test\profiled-wss-wssecurity-utility-1.0.xsd c:\test\profiled-ws-trust.xsd c:\test\ws-addr.xsd c:\test\ws-trust-1.4-extensions.xsd c:\test\xmldsig-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 WSE\v3.0\Microsoft.Web.Services3.dll"

 

在編譯STSService.dll的過程中可能會出現下圖警告。這代表需要安裝.net framework v2.0 sdk這麼個東西,注意並非.net framework 2.0。

 

安裝完成重新引用生產的dll文件,這時候有點要注意,sample裡面的項目采用.net framework 3.5,這取決於你編譯dll的版本,可以更改項目版本或者采用對應的編譯環境即可。

另外在sample中有兩種客戶端登錄方式。一種被稱為過時的,實際上VMA代理實例,另一種就是SSO。

不過SSO在sample的wsdl提供的api中卻沒有提供sso的接口。缺少部分類方法。所以注釋掉sso的驗證代碼。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved