我有一個自託管的命名管道(不使用http)wcf託管在類庫中。我可以通過以下方法類庫啓動WCF:從它自己的類構造函數啓動WCF
ServiceHost serviceHost;
public void startService()
{
// Create the service host
...
// Open Service Host
serviceHost.Open();
}
然後從一個WinForms測試程序運行從一個按鈕,單擊下列項目:
MyClassLib.MySvc testSvc;
private void button2_Click(object sender, EventArgs e)
{
testSvc = new MyClassLib.MySvc();
testSvc.startService();
}
這並不正確啓動在類庫中運行的WCF。
但是這需要引用類庫的winforms調用startService方法。
我希望能夠在運行WCF的類庫的引用完成後立即啓動服務。
我嘗試添加類庫中的服務的構造函數如下:
public MySvc()
{
startService();
}
再從WinForms的實例:
MyClassLib.MySvc testSvc;
private void button2_Click(object sender, EventArgs e)
{
testSvc = new MyClassLib.MySvc();
//testSvc.startService(); //No need to call this
}
如果我調試的代碼,我可以看到,在事實上它確實在這一點上打破:
public MySvc()
{
startService(); // It does run this but service does not start
}
但是,這並不運行該服務。任何幫助,將不勝感激。
注意#1:我相信它的某些類型的時間問題,它不讓你在構造函數方法中啓動服務,但不確定。
您有'MySvc',但在你的代碼是什麼正在調用構造函數構造函數? (提示:可能沒有)。你需要一些入口點。看看你的Winforms應用程序。有一個帶有靜態「Main」方法的Program.cs文件。這是入口點。 – helrich
構造函數是類庫中服務類的名稱。當我從winforms實例化類庫時,它被調用。它甚至會調用startService方法,但服務不會以這種方式啓動。 –