Jakie jest zastosowanie i znaczenie IMetadataExchange w WCF?Jakie jest znaczenie IMetadataExchange w WCF?
Mam następujący plik app.config, w którym nie używam punktu końcowego IMetadataExchange
, ale nadal mogę utworzyć klienta proxy. Przeczytałem, że jeśli nie używam punktu końcowego IMetadataExchange
, AddServiceReference nie będzie działać, ponieważ moja usługa nie ujawnia metadanych. Jak działa bez narażania punktu końcowego?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="metaDataBehavior">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name ="WCFService.Services" behaviorConfiguration="metaDataBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8090/Services/"/>
</baseAddresses>
</host>
<endpoint address="" binding="basicHttpBinding" contract="WCFService.IMathOperations"/>
</service>
</services>
</system.serviceModel>
</configuration>
+1 dokładnie - brak metadanych -> nie ma możliwości sprawdzenia, co oferuje usługa, w takim przypadku potrzebny jest "wstępnie przygotowany" klient proxy jako kod lub coś innego, aby połączyć się z usługą –
+1 dla "• Należy usunąć go z serwerów produkcyjnych, aby haker nie mógł dodać odwołania do usługi" –
Zapobieganie dodawaniu referencji serwisowej przez hakera NIE uniemożliwi hakerowi wywoływania/nadużywania/defraudacji usługi. – Mark