पर सर्विसकंट्रैक्ट नहीं देख रहा है मैं डब्ल्यूसीएफ के लिए नया हूं और अपनी पहली सेवा चलाने की कोशिश कर रहा हूं। मैं करीब हूँ लेकिन इस समस्या पर अटक गया।डब्ल्यूसीएफ सेवा - रनटाइम इंटरफेस
मेरी इंटरफ़ेस परिभाषा फ़ाइल में, मैं यह है:
[ServiceContract(Namespace="http://mysite.com/wcfservices/2009/02")]
public interface IInventoryService
{
[OperationContract]
string GetInventoryName(int InventoryID);
}
तब मैं अपने वर्ग फ़ाइल (सेवा के लिए) है कि यह विरासत में:
public class InventoryService : IInventoryService
{
// This method is exposed to the wcf service
public string GetInventoryName(int InventoryID)
{
return "White Paper";
}
अंत में, मेरी होस्ट परियोजना में मैं इस राशि:
ServiceHost host = new ServiceHost(typeof(Inventory.InventoryService));
host.AddServiceEndpoint(typeof(Inventory.InventoryService), new NetTcpBinding(),
"net.tcp://localhost:9000/GetInventory");
host.Open();
सब कुछ ठीक संकलित, और मेजबान ख सेवा समाप्ति बिंदु जोड़ने के लिए, यह जाता है जब इसके साथ ombs: "अनुबंध प्रकार सूची। इन्वेंटरी सेवा सेवाContractAttribute के साथ जिम्मेदार नहीं है। एक वैध अनुबंध को परिभाषित करने के लिए, निर्दिष्ट प्रकार (या तो अनुबंध इंटरफ़ेस या सेवा वर्ग) को ServiceContractAttribute के साथ जिम्मेदार ठहराया जाना चाहिए। "
मुझे पता है कि मुझे यहां कुछ आसान याद आ रही है। मेरे पास इंटरफ़ेस स्पष्ट रूप से सेवा अनुबंध के रूप में चिह्नित है और वहाँ होस्ट परियोजना में है कि परियोजना के लिए एक संदर्भ है
जब मैं कोशिश है कि यह मुझे देता है ArgumentException, "ServiceHost केवल समर्थन एस क्लास सेवा प्रकार। " –
गलत स्विच किया गया - AddServiceEndpoint कॉल को इंटरफ़ेस में बदलें, ServiceHost को कक्षा के रूप में रखें। – Brian
समझ गया! इसलिए मैं कंक्रीट क्लास में गुजरने वाले सर्विसहोस्ट को तत्काल कर रहा हूं, लेकिन मैं अंतराल के साथ एंडपॉइंट या बाइंडिंग को परिभाषित कर रहा हूं, जो वास्तव में अनुबंध परिभाषा है (यानी कक्षा नहीं)। मैं अंततः इस के लटका मिल जाएगा। धन्यवाद ब्रायन और एंड्रयू। –