Предоставление службы WCF REST-полностью - PullRequest
0 голосов
/ 15 октября 2010

Я создал новый сервис WCF. Я создал этот сервис, просто сказав Добавить новый элемент ... -> Служба WCF в Visual Studio. Затем я немного отредактировал договор, чтобы он выглядел следующим образом:

[ServiceContract]
public interface IMyService
{
    [OperationContract]
    [WebGet(UriTemplate = "/Authenticate/{username}/{password}", ResponseFormat = WebMessageFormat.Json)]
    bool Authenticate(string username, string password);
}

Мои операции выглядят следующим образом:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class MyService : IMyService
{
    public bool Authenticate(string username, string password)
    {
        try
        {
            return false;
        }
        catch (Exception ex)
        {
            throw new ApplicationException("Unknown exception");
        }
    }
}

Когда я захожу: http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword в моем окне браузера, появляется пустой экран. Я ожидал, что «false» появится в синтаксисе JSON. Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 15 октября 2010

Используйте такой инструмент, как Fiddler, чтобы увидеть фактические сообщения HTTP. Помогает с отладкой.

Во-вторых, вы запрашиваете неправильный URL-адрес. Попробуйте это:

http://localhost:80/MyService.svc/Authenticate/someUserName/somePassword

У вас есть файл SVC, правильно? Это понадобится вам, если вы размещаете это в IIS. Если вы самостоятельно размещаете его в объекте WebServiceHost, тогда он вам не нужен.

    using( WebServiceHost host = new WebServiceHost( typeof( MyService) ) )
    {
        host.Open();
        Console.WriteLine( "Service is running" );
        Console.WriteLine( "Press enter to quit..." );
        Console.ReadLine();
        host.Close();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...