Qual è l'uso e l'importanza di IMetadataExchange in WCF?Qual è l'importanza di IMetadataExchange in WCF?
Ho il seguente file app.config in cui non utilizzo l'endpoint IMetadataExchange
, ma sono ancora in grado di creare il mio client proxy. Ho letto che se non utilizzo l'endpoint IMetadataExchange
, AddServiceReference non funzionerà perché il mio servizio non espone i metadati. Come funziona senza esporre l'endpoint IMetadataExchange
?
<?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 - nessun metadata -> nessun modo per scoprire cosa offre il servizio, in tal caso, è necessario un client proxy "pre-creato" come codice o qualcos'altro per connettersi al servizio –
+1 per "• Dovresti eliminarlo dai server di produzione, in modo che un hacker non possa aggiungere un riferimento al servizio" –
Impedire ad un hacker di aggiungere un riferimento al servizio NON impedirà all'hacker di chiamare/abusare/frodare il tuo servizio. – Mark