Postupy: Použití monikeru služby u kontraktů výměny metadat
Po vývoji některých nových služeb WCF se můžete rozhodnout, že chcete tyto služby volat ze skriptu nebo aplikace Visual Basic 6.0. Jednou z metod by bylo vygenerování klientského sestavení WCF, registrace sestavení pomocí modelu COM, instalace sestavení v GAC a následné odkazování na typy modelu COM z kódu jazyka Visual Basic. Při distribuci aplikace budete muset také distribuovat sestavení klienta WCF. Uživatel pak bude muset zaregistrovat klientské sestavení WCF na com a umístit ho do GAC. Zprostředkovatele komunikace modelu COM WCF také umožňuje provádět stejná volání služby, aniž byste museli spoléhat na sestavení klienta WCF. Moniker WCF umožňuje volat jakoukoli službu WCF z libovolného jazyka kompatibilního s com (Visual Basic, VBScript, jazyk Visual Basic for Application (VBA) a tak dále) zadáním identifikátoru URI koncového bodu výměny metadat (Mex), který moniker služby používá k extrahování informací o typu služby. Toto téma popisuje, jak volat ukázku Getting Started WCF pomocí monikeru WCF, který určuje koncový bod Mex.
Poznámka:
Typy definované sestavením klienta WCF se ve skutečnosti nikdy neskutevují. Sestavení se používá pouze pro metadata.
Použití monikeru služby s adresou Mex
Sestavte ukázku Začínáme a pomocí prohlížeče přejděte na její adresu URL (
http://localhost/ServiceModelSamples/Service.svc
), abyste měli jistotu, že služba funguje.Vytvořte skript jazyka Visual Basic nebo aplikaci jazyka Visual Basic, která obsahuje následující kód:
monString = "service:mexaddress=http://localhost/ServiceModelSamples/Service.svc/MEX" monString = monString + ", address=http://localhost/ServiceModelSamples/Service.svc" monString = monString + ", contract=ICalculator, contractNamespace=http://Microsoft.ServiceModel.Samples" monString = monString + ", binding=WSHttpBinding_ICalculator, bindingNamespace=http://Microsoft.ServiceModel.Samples" Set calc = GetObject(monString) MsgBox calc.Add(3, 4)
Spusťte aplikaci nebo skript jazyka Visual Basic.
Poznámka:
Služba, kterou voláte, musí vystavit koncový bod Mex pro moniker, aby mohl číst metadata ze služby. Další informace naleznete v tématu Postupy: Publikování metadat pro službu pomocí konfiguračního souboru.
Poznámka:
Pokud je moniker poškozený nebo pokud je služba nedostupná, volání
GetObject
vrátí chybu s informacemi o neplatné syntaxi. Pokud se zobrazí tato chyba, ujistěte se, že je název, který používáte, správný a že je služba dostupná.