最近寫了一個小工具,用來定時檢測公司各臺服務器上的WebService是否工作正常.如果無法訪問則報警.
開發思路也很簡單, 設定一個Timer, 定時啟動多個線程(每個線程負責N臺服務器訪問任務)去動態訪問各服務器上的WebService的指定方法. 然後對異常信息進行報警.
動態訪問WebService技術採用大家都熟悉的反射(Reflection), 如下:
/// < summary>
/// 動態調用WebService
/// < /summary>
/// < param name="url">WSDL服務地址< /param>
/// < param name="classname">類名< /param>
/// < param name="methodname">方法名< /param>
/// < param name="args">參數< /param>
/// < returns>< /returns>
public static object InvokeWebService(string url, string classname, string methodname, object[] args)
{
string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
if ((classname == null) || (classname == ""))
{
classname = WSHelperReflection.GetWsClassName(ur