WCF的宿主(伺服器)

2021-06-16 05:22:46 字數 1524 閱讀 9843

一、對於乙個wcf服務,經常舉例說明的,一般wcf服務裡面都是只有乙個方法,比如helloworld,比如:

public string helloworld(string name)

對於宿主(伺服器)端來說,承擔著發布wcf服務到iis上,或者提供介面供客戶端呼叫的職責,那麼實現也相對比較簡單

console.writeline("開始啟動服務。。。");

servicehost host1 = new servicehost(typeof(hellotimeservice.service1));

host1.open();

console.writeline("服務已經啟動");

console.readline();

即可。在客戶端呼叫直接引用service中配置的baseaddress即可。

二、對於wcf服務中有多個服務的情況,可能更加的符合一般要求一些。

console.writeline("開始啟動服務。。。");

servicehost host1 = new servicehost(typeof(hellotimeservice.service1));

host1.open();

servicehost host2 = new servicehost(typeof(hellotimeservice.hello));

host2.open();

console.writeline("服務已經啟動");

console.readline();

來乙個乙個的開啟

雖然這種方法很不好,但是完全可以符合要求,當然,你也可以通過介面來實現,即定義iservice1和ihello來定義方法,再建立乙個類來實現這兩個介面,那麼再通過

console.writeline("開始啟動服務。。。");

servicehost host = new servicehost(typeof(hellotimeservice.service));

host.open();

console.writeline("服務已經啟動");

console.readline();

也可以實現,但是這也有乙個確定,那就是,實現的這個service方法的內容將會異常龐大。

所以可以這樣實現

///

/// 批量啟動服務

///

public static void startservice()

servicehost host = new servicehost(mytype);

host.open();

_hosts.add(host);

}console.writeline("服務已經啟動");

console.readline();

}catch (exception)  }

///

/// 批量關閉服務

///

public static void closeservice()

}雖然不是很理想,但是功能差不多都可以實現,如果以後有方法再改

WCF服務怎麼獲得宿主的ip位址

很多時候我們將wcf服務寄宿在windows視窗應用程式或控制台應用程式中,那麼實現契約的類怎樣才能確定寄宿的應用程式所在計算機的ip位址呢?其實方法和獲得客戶端ip位址的方法差不多,仍然是採用了operationcontext類。主要 如下 private function gethostip a...

使用WCF實現伺服器分頁

wcf端 using system using system.linq using system.runtime.serialization using system.servicemodel using system.servicemodel.activation using system.col...

在window元件服務中建立WCF宿主

wcf的宿主host可以存在於四個地方 iis,was,元件服務和window程式中 這個地方說的是元件服務 建立元件服務的host客戶端編碼是沒有變化的,關鍵在於服務端 服務端的的契約介面和契約實現都是一樣的。就是新增了兩個類 這個繼承元件服務基類 public class windowscalc...