如何在運行時在我的winform UI中添加wcf服務。 我創建了一個返回主機運行進程的wcf服務。我想在我的winform應用程序中添加託管的機器服務。如何在運行時添加wcf服務
0
A
回答
1
不知道你在這裏試圖做什麼。但是您需要知道兩件事才能調用WCF服務1)服務合同2)端點。現在不會從服務合同中逃脫,因爲您需要知道您可以使用的所有操作。但是,在WCF 4中,有一項稱爲WCF發現的新功能,可幫助您動態確定終點,即在RunTime。請參考以下鏈接http://msdn.microsoft.com/en-us/library/dd456791.aspx
2
您需要在運行時動態更改端點,因此您需要WCF Discovery。
結構:
WCF Consumer(s) <---> WCF Discovery Service <---> WCF Service(s)
實現:
- How to: Implement a Discovery Proxy
- How to: Implement a Discoverable Service that Registers with the Discovery Proxy
- How to: Implement a Client Application that Uses the Discovery Proxy to Find a Service
拓撲:
- 啓動搜索服務[結構骨架]
- 啓動服務(S)每個服務將ANNOUNCE其啓動到發現服務]
- 啓動客戶端(S )[每位客戶都會DISCOVER(查找 & RESOLVE)服務從發現服務端點]
注:
- 發現過程使用UDP(檢查你的防火牆,它可以阻止連接)
- 服務必須宣佈其啓動,因此自己託管服務是好的,但IIS託管 5/6人不是因爲他們自動啓動時第一次調用發生!
解決IIS託管5/6問題:
這樣你就可以開始您的IIS託管手動5/6服務,而不被調用的第一次
您還可以使用WCF Routing Service。
BROTHER提示:
不要走遠了無服務器(無骨幹,無BootleNeck,完全分佈式,..等)理想的拓撲結構,這會爆破你的頭,把你瘋了: d
對於一個初學者,我建議你這個教程[WCF Tutorials]
0
如果我理解你的問題正確,你需要一些代碼,會在運行時沒有在* config文件和使用任何配置中添加服務* .svc文件。
請參閱樣本:
Uri baseAddress = new Uri("http://localhost:8080/hello");
// Create the ServiceHost.
using (ServiceHost host = new ServiceHost(typeof(HelloWorldService), baseAddress))
{
// Enable metadata publishing.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
// Open the ServiceHost to start listening for messages. Since
// no endpoints are explicitly configured, the runtime will create
// one endpoint per base address for each service contract implemented
// by the service.
host.Open();
Console.WriteLine("The service is ready at {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the service.");
Console.ReadLine();
// Close the ServiceHost.
host.Close();
}
它在控制檯應用程序創建自託管服務。
http://msdn.microsoft.com/en-us/library/ms731758.aspx
是你問什麼?
相關問題
- 1. 如何在dotnetnuke中運行WCF服務
- 2. 在運行時創建WCF服務
- 3. 在運行時創建WCF服務
- 4. 如何將TLS添加到WCF服務?
- 5. 如何在Eclipse中爲WCF服務「添加服務引用」?
- 6. 如何在使用net.msmq時添加WCF服務參考
- 7. CS0426添加WCF服務時參考
- 8. 添加WCF服務引用時出錯?
- 9. 運行WCF服務庫時出錯
- 10. 長時間運行WCF服務
- 11. WCF數據服務運行時間EDMX
- 12. 運行時動態調用WCF服務
- 13. 運行WCF服務時顯示網頁
- 14. 添加發現WCF服務
- 15. 添加類WCF服務庫
- 16. 如何將全局運行時服務添加到System.ComponentModel.Container?
- 17. 如何將Eclipse Websphere 6.1服務器/運行時添加到Eclipse?
- 18. 如何爲雙工服務添加WCF服務參考?
- 19. 如何使用HTTPS將服務引用添加到WCF服務?
- 20. 如何使用Windows服務上運行的WCF服務
- 21. 如何將自定義服務行爲添加到WCF配置
- 22. WCF服務,如何映射對象運行時
- 23. WCF服務行爲將操作添加到我的服務
- 24. 爲wcf服務添加服務引用時出錯
- 25. 錯誤時添加服務引用WCF服務類型的ObservableCollection
- 26. WCF:如何將ServiceThrottlingBehavior添加到WCF服務?
- 27. 無法在localhost中運行wcf服務
- 28. 如何設置每次服務運行時WCF測試客戶端將運行
- 29. 在WCF中,如何訪問服務正在運行的用戶?
- 30. 如何在運行時添加UIButton
當你說你想在運行時添加wcf服務你的意思是你沒有確切的結束點,但你知道服務公開的操作 –
操作不公開。但每個服務的操作都是一樣的,我可以通過鏈接主機地址來使用它們嗎? – Enigma34
如果操作不被公開,你會如何打電話給他們?即使您在針對該特定服務調用操作時所有服務的操作相同,也需要暴露操作。 –