2012-02-17 94 views
0

我已經創建了一些端點(帶有mex端點)的WCF服務。 如果我現在創建例如控制檯主機,並把這個在我的主:通過添加服務引用WCF主​​機應用程序?

ServiceHost host = new ServiceHost(typeof(HelloWorld)); 

host.Open(); 

Console.WriteLine("The service is ready at!"); 
foreach (ServiceEndpoint se in host.Description.Endpoints) 
      Console.WriteLine(se.Address.ToString()); 
     Console.WriteLine("Press <Enter> to stop the service."); 
Console.ReadLine(); 

// Close the ServiceHost. 
host.Close(); 

是否可以通過添加服務引用生成對主機端一的app.config,或者我需要創建應用程序配置我的自我,並使它類似於wcf服務端點?

接下來這個,怎麼可能是局域網中的其他一些計算機可以訪問該主機? (PS這是什麼意思:一個服務可能包含一個mex端點,它獲得服務的ABC並返回WSDL(現在是不可理解的部分)在獲得WSDL之後,會生成兩個工件:項目語言中的代理類和app.config文件,代理類反映端點操作的簽名,以便客戶端代碼可以簡單地「調用」端點。代理接口不必與服務簽名,但代理需要確保發送到服務的消息正是由服務合同的敘述。(行麼?)

回答

0

1)您必須指定端點(A-地址,B-綁定,C-contract)在app.config和這個app.config必須與你的主機應用程序(你的co在這種情況下,nsole應用程序) 2)如果某些客戶端運行visual studio的命令提示符並運行此服務,則可以在LAN中識別此服務/ 012:。按照你的情況...)

這裏Proxy.cs包含Proxy類,客戶端應該添加此溶液中並調用代理類的方法,在此Proxy.cs存在相同的目錄,你會發現1 .config文件,將該文件的內容粘貼到客戶端的app.config。 3)MEX端點需要交換元信息。

+0

我是否需要配置和服務app.config和主機app.config? – skyyyy 2012-02-23 11:45:01

+0

您需要爲上述第1點中提到的主機應用程序配置兩個.config,1,第二個是由svcutil獲得的,第二個需要使用客戶端進行配置。 – sanguine 2012-02-24 11:50:49

0

在你的第一個問題,我想你的意思是「客戶」,當你說「主持人」。爲此,您應該在代碼中將Uri放入ServiceHost的構造函數中。 例如

ServiceHost host = new ServiceHost(typeof(HelloWorld), new Uri("http://localhost:1234/helloworld", UriKind.Absolute)); 

然後右鍵單擊您的項目並轉到調試/啓動新實例。現在你的服務在給定的Uri下運行。在Visual Studio中,轉到頂部的Debug菜單並選擇「Detach all」。現在您的服務應用程序仍在運行。您現在可以轉到您的客戶端項目並像您習慣的那樣添加服務引用。只需在添加服務引用對話框中填寫Uri即可。

對於你最後一個問題。這只是意味着視覺工作室爲您服務引用創建本地文件,並作爲一個開發者,如果它是服務本身,你應該使用客戶端類和它的作品:-)

相關問題