我想實現在NetFX Harmonics: Creating Streamlined, Simplified, yet Scalable WCF Connectivity可擴展的解決方案WCF
發現可擴展的解決方案WCF所以我的解決方案有4個項目
- Contact.Service(服務和數據合同)
- Contact.ServiceImpl(HostFactory和服務本身)
- Contact.ServiceHost(Web.config和Person.svc)
- Contact.ServiceClient
Contact.ServiceClient有實際調用服務的App.config和Program.cs。
的App.config
<configuration>
<appSettings>
<add key="PersonServiceActiveEndpoint" value="PersonServiceBasicHttpBinding" />
</appSettings>
<system.serviceModel>
<client>
<endpoint name="PersonServiceBasicHttpBinding"
address="http://localhost:1031/Person.svc"
binding="basicHttpBinding"
contract="Contact.Service.IPersonService" />
</client>
</system.serviceModel>
</configuration>
Program.cs的
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1031/Person.svc");
IPersonService personService = new ChannelFactory<IPersonService>(basicHttpBinding, endpointAddress).CreateChannel();
Person person = personService.GetPersonData("F488D20B-FC27-4631-9FB9-83AF616AB5A6");
Console.WriteLine(person.FirstName);
當我嘗試運行這個例子會拋出異常:
有沒有終點在http://localhost:1031/Person.svc聽那個可以接受消息。這通常是由不正確的地址或SOAP操作引起的。
P.S. Person.svc在我的Contact.ServiceHost項目中
<%@ ServiceHost Service="Contact.Service.PersonService" %>
我設置了多個啓動項目,沒有運氣。 彈出窗口出現錯誤,「無法直接啓動具有類庫輸出類型的項目」。 還有一件事,我改變了人。svc,現在它正在使用工廠<%@ ServiceHost Service =「Person.Service.PersonService」Factory =「Person.Service.PersonServiceFactory」%>你說得對,沒有啓動wcf服務,沒有任務彈出信息消息 – user1084557 2012-02-08 20:57:13
什麼是servicehost項目的類型?它不應該是一個類庫。看起來像這是你的問題 – 2012-02-08 21:09:22
我已經改變了Contact.Service項目,實際上我刪除並重新創建(現在insac dataclasslibrary選擇WCF服務庫)。在調試我有彈出窗口的信息:用法:WCFSVCHOST.exe /服務: –
user1084557
2012-02-08 22:04:44