2014年2月17日 星期一

在 Visual C# 中使用 WCF Web Service

當使用 WCF web service 時, 在 visual C# 中在 Reference 按右鍵, 接著點選
Add Service Reference, 然後在 Address 欄位填入 web service 的 URL 就好了
WCF Web Service URL 的副檔名是 svc

之後在程式中就可以使用一個 proxy 物件, server 端提供的 services 就會被當成
proxy 物件的 method 來使用

而該 proxy 物件的類別名稱會是 xxxClient

.NET 相關名詞解釋

ADO.NET

ADO.NET 是針對 .NET Framework 程式設計人員公開 (Expose) 資料存取服務一組類別 (Class)
http://msdn.microsoft.com/zh-tw/library/e80y5yhx%28v=vs.110%29.aspx


ASP.NET Web Service 與 WCF 的異同

簡單來講, ASP.NET Web Service 是 MS 提供的一個框架, 讓開發者可以開發 web service
服務.
而 WCF 是也是 MS 提供的一套框架, 可以讓開發者開發各種基於軟體間通訊的服務, 其中
也包括 web service.
http://www.dotblogs.com.tw/joysdw12/archive/2013/07/25/note-wcf-web-service-difference.aspx
http://msdn.microsoft.com/zh-tw/library/ms730214%28v=vs.110%29.aspx

2014年2月13日 星期四

C# 應用程式的 XML 組態設定檔

C# 程式有三種設定檔
1. machine.config
2. app.exe.config
3. user.config

通常會用到的是後面兩種.
當開發一個 C# 專案時, build 完後就會在 release folder 底下看到 app.exe.config
裡面放著 application scope settings 和 user scope settings 的預設值.

app.exe.config 是為了存放 application scope settings 用的, 通常是唯讀的.
當程式第一次改變 user scope settings 時, 例如呼叫

Settings.Default.Save(); 

後, 就會在 C:\Users\UserName\AppData\Local\ProjectName 下面存放 user.config
之後假如程式結束並重啟, user scope settings 就會使用 user.config 裡的值
而不會再用 app.exe.config

Reference:
http://msdn.microsoft.com/zh-tw/library/k4s6c3a0%28v=vs.110%29.aspx
http://msdn.microsoft.com/zh-tw/library/8eyb2ct1%28v=vs.110%29.aspx

VMWare ESXi host 的 WID 與 CID

VMware ESXi run 在實體機器與 guest OS 之間的中介層又叫 VMKernel


這是一個 linux based 的 micro kernel, 並且有提供 SSH 服務, 可以讓管理者 login 進去

當 login 進去後可以使用 ps command, 但是列表顯示的不是一般 linux system 的 PID, PPID
之類的欄位, 反而是沒聽過的 WID(World ID), CID(Cartel ID)

其實 WID 可以想像成是 PID, 因為 VMware 把 run 在 VMKernel 上的 process 稱作是 WORLD
所以 assign 給它的識別碼就稱為 World ID

一個 Virtual Machine 會由幾個 World 所組成, 在 VMware 叫做 Cartels, 所以屬於同一個 Virtual Machine 的 World 會有同一個 Cartel ID

Reference:
http://searchvmware.techtarget.com/definition/VMkernel
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=1001101
http://www.experts-exchange.com/Software/VMWare/Q_27906573.html

2014年2月12日 星期三

Windows service 啟動錯誤 error 1069: The service did not start due to logon failure

出現 1069 號錯誤除了當初 create service 時的 密碼設定錯誤外, 最有可能的就是設定給 service 的帳號沒有以 service logon 的權限.

以 Windows 7 為例子, 到控制台->系統及安全性->系統管理工具->本機安全性原則
打開後選擇 本機原則->使用者權限指派->以服務方式登入

如果不想那麼麻煩, 也可以直接 run gpedit.msc
到 Windows設定->安全性設定->本機原則

點兩下後把帳號加入, 之後就可以啟動該 Windows service 了