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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top