Quiero invocar un wcf webservice usando una dirección url de la cadena de consulta. Como si tengo un webserive que exponer un método de adición de adición de dos números enteros. Quiero invocar este servicio mediante http://mywebserviceAddress/Add?x=4&y=5

Es posible hacer esto. Soy nuevo en webservices, esto puede ser muy fácil para la mayoría de ustedes.

OriginalEl autor Vaibhav Jain | 2010-07-18

3 Comentarios

  1. 3

    Si quieres llamar a tu servicio WCF con la recta verbos HTTP, usted necesita para crear un WCF RESTO de servicios, el uso de la webHttpBinding.

    Echa un vistazo a algunos de los recursos para que:

    Endpoint.TV los screencasts:

    Endpoint.TV , en general, tiene muy buena cobertura de WCF y WCF RESTO de cosas.

    OriginalEl autor marc_s

  2. 4

    Ver si el ejemplo de abajo te ayuda a:

    Contrato De Servicio

    [ServiceContract] 
    public interface IService1 
    { 
       [OperationContract] 
       [WebGet(UriTemplate="Add/{x}/{y}",ResponseFormat=WebMessageFormat.Xml)] 
       int Add(string x, string y); 
     }

    De la implementación del servicio:

    public class Service1 : IService1
        {
            public int Add(string x, string y)
            {
                return Convert.ToInt32(x) + Convert.ToInt32(y);
            }
        }

    Web config:

    <system.serviceModel>
            <services>
                <service name="WcfService1.Service1" behaviorConfiguration="WcfService1.Service1Behavior">
                    <endpoint address="" binding="webHttpBinding" behaviorConfiguration="webBehavior" contract="WcfService1.IService1">
                        <identity>
                            <dns value="localhost"/>
                        </identity>
                    </endpoint>
                    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
                </service>
            </services>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="WcfService1.Service1Behavior">
                        <serviceMetadata httpGetEnabled="false"/>
                        <serviceDebug includeExceptionDetailInFaults="false"/>
                    </behavior>
                </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="webBehavior">
              <webHttp/>
            </behavior>
          </endpointBehaviors>
            </behaviors>
        </system.serviceModel>

    Código de cliente:

    WebRequest request = WebRequest.Create("http://localhost:2156/Service1.svc/Add/2/3");
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Console.WriteLine("Request to add numbers: ");
                Console.WriteLine("Request status: " + response.StatusDescription);
                Stream dataStream = response.GetResponseStream();
                StreamReader reader = new StreamReader(dataStream);
                string responseFromServer = reader.ReadToEnd();
                Console.WriteLine("Response: \n" + responseFromServer);
                Console.ReadLine();

    OriginalEl autor devson

  3. 0

    Es un WS desea construir o una ya existente que desea consumir ?

    Si quieres construir uno, vea el RESTO de servicio web.

    De verificación de la página de MSDN para el DESCANSO, usted encontrará artículos, vídeos, formación, ejemplos de código, etc.
    http://msdn.microsoft.com/en-us/netframework/cc950529.aspx

    Estoy escribiendo un nuevo wcf WS. Estoy aprendiendo wcf probando diferentes enfoques.
    RESTO es de hecho el que usted desea utilizar. Si usted está usando VS 2010, usted puede buscar plantillas en línea para la WCF RESTO de servicios y usar eso como un punto de partida – ver sshot @ manningj.files.wordpress.com/2010/07/…
    No sé lo que es un servicio rest es 🙁
    Manning – creo que requiere 4.0 para utilizar ServiceRoute. No podía conseguir que el proyecto para trabajar en 3.5, pero todas son buenas en la versión 4.0.

    OriginalEl autor Florian

Dejar respuesta

Please enter your comment!
Please enter your name here