完全暴露WCF服务REST

时间:2010-10-15 14:49:41

标签: wcf

我创建了一个全新的WCF服务。我只是通过添加新项目来创建此服务... - > Visual Studio中的WCF服务。然后,我稍微编辑了合同,如下所示:

[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时,会出现一个空白屏幕。我希望JSON语法中出现“false”。我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用像Fiddler这样的工具来查看实际的HTTP消息。有助于调试。

其次,您的请求网址是错误的。试试这个:

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