Parecen correr en un extremo de servicio no se encuentra problema cuando se trata de obtener de mi servicio.

si trato http://localhost:8000/hello/help que deben esperar para ver <string>You entered help <string> pero que sólo recibe el ningún extremo en su lugar? No he tocado mis archivos de configuración en todo, y estoy de hosting desde una aplicación de consola.

Host:

namespace Host
{
    class Program
    {
        static void Main(string[] args)
        {
            WebHttpBinding binding = new WebHttpBinding();
            WebServiceHost host =
            new WebServiceHost(typeof(Service1));
            host.AddServiceEndpoint(typeof(IService1),
            binding,
            "http://localhost:8000/hello");
            host.Open();
            Console.WriteLine("Hello world service");
            Console.WriteLine("Press <RETURN> to end service");
            Console.ReadLine();
        }
    }
}

Service1:

namespace WcfServiceLibrary1
{
    //NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together.
    public class Service1 : IService1
    {
        public string GetData(string value)
        {
            return string.Format("You entered: {0}", value);
        }

IService1:

[ServiceContract]
public interface IService1
{
    [WebGet(UriTemplate = "/{value}")]
    string GetData(string value);

OriginalEl autor G Gr | 2012-03-25

2 Comentarios

  1. 6

    Quitar el /de {valor} y asegúrese de que aparece como un OperationContract. Debe ser:

    [WebGet(UriTemplate = "{value}")]
    [OperationContract]

    El URL de la base vendrá a través de la barra diagonal, por lo que realmente estás buscando http://localhost:8000/hello//help en el actual código de

    Hey Justin bueno verte de nuevo, /{valor} es porque mi url es: localhost:8000/hello sin fin slash / creo que puede ser o pero independientemente de tomarlo lejos de no resolver el problema.
    He actualizado mi respuesta, me di cuenta de que también están perdiendo la OperationContractAttribute.
    lol contrato de operación faltaba! +1
    Por curiosidad, ¿puedes probar con y sin la barra. Por todo lo que he visto, el primer valor nunca es el prefijo con una barra, así que tengo curiosidad por saber si se hace o no hace una diferencia?
    sí no hace ninguna diferencia, sin embargo… haciendo //ayuda sólo devuelve ayuda! Pero localhost:8000/hola/ayuda también devuelve ayuda!

    OriginalEl autor Justin Pihony

  2. 0

    Una puñalada en la oscuridad … por defecto, la arbitrariedad de los procesos no están autorizados a escuchar en puertos de red.

    Cuando se instala IIS, la cuenta que ejecuta IIS es dado permiso – si quieres que el resto de las aplicaciones de ejecución de otras cuentas (aplicaciones de consola de servicios de windows) para ser capaz de escuchar a un puerto, es necesario conceder el permiso.

    Retirar el netsh agregar urlacl comando como un punto de partida.

    Pero mi vs2010 se ejecuta en el administrador?
    Ser administrador no significa que usted tiene todos los privilegios – sólo que usted tiene el poder de conceder a sí mismo. Recientemente estuve trabajando en un servicio de windows que se auto organizó un servicio de WCF (para permitir la reconfiguración de la mosca) – mi servicio era inaccesible hasta que usé el comando netsh para conceder el permiso. Yo estaba usando VS2010 que se ejecutan en Windows Server 2008 R2 en el tiempo.

    OriginalEl autor Bevan

Dejar respuesta

Please enter your comment!
Please enter your name here