Конечная точка службы не найдена? - PullRequest
4 голосов
/ 26 марта 2012

Кажется, что при попытке получить от моего сервиса проблема с конечной точкой службы не найдена.

, если я пытаюсь http://localhost:8000/hello/help, я должен ожидать увидеть <string>You entered help <string>, но я получаю только нетконечная точка вместо?Я вообще не трогал мои файлы конфигурации, и я просто хостинг из консольного приложения.

Хост:

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();
        }
    }
}

Служба 1:

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);

Ответы [ 2 ]

6 голосов
/ 26 марта 2012

Удалите / из {value} и убедитесь, что он указан как OperationContract. Должно быть:

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

Базовый URL будет добавлен через косую черту, поэтому вы действительно ищете http://localhost:8000/hello//help в текущем коде

0 голосов
/ 26 марта 2012

Удар в темноте ... по умолчанию произвольные процессы не могут прослушивать сетевые порты.

Когда IIS установлен, учетная запись, на которой работает IIS, получает разрешение - если вы хотите, чтобы другие приложения, запускаемые другими учетными записями (консольные приложения, службы Windows), могли прослушивать порт, вам необходимо предоставить разрешение.

Проверьте команду netsh add urlacl в качестве отправной точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...