WCF con hosting autonomo per client AJAX
-
22-09-2019 - |
Domanda
Sto cercando di ospitare autonomamente un servizio Web WCF e fornire un endpoint HTTP con supporto Ajax.Praticamente tutto ciò che ho trovato su WCF e AJAX parla di IIS, che non voglio utilizzare.
Ho creato una semplice app console per ospitare il servizio.Il mio servizio ha un solo metodo:
[ServiceContract]
interface IMyService
{
[OperationContract]
string TestConnection();
}
Ed ecco il codice app.config:
<services>
<service name="Service.MyService" behaviorConfiguration="MyServiceBehavior" >
<endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Service.IMyService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="WebBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
Posso accedere all'endpoint dei metadati del servizio e visualizzare il WSDL, ma non riesco a utilizzarlo dal mio client Ajax.Quindi la mia domanda è:1.È possibile farlo?2.Qual è la configurazione necessaria che ovviamente mi manca?
NOTA Non sto utilizzando un file .svc
Grazie!
Soluzione
Qual è il tuo cliente?Con EnableWebScript ottieni il supporto ASP.NET AJAX (ad esempio, membri decorati, tipi e tutto ciò che ciò implica).Se desideri un JSON "grezzo", utilizza il comportamento webHttp anziché EnableWebScript e tagga le operazioni dell'interfaccia con WebInvokeAttribute o WebGetAttribute (impostando i tipi di richiesta/risposta su JSON o XML come desideri).Sembra inoltre che tu non abbia attribuito alla tua interfaccia ServiceContractAttribute, che è obbligatorio.