2013-08-05 60 views
3

我正在构建一个使用ServiceStack的相当简单的服务,但我在几个服务上收到了这个非描述错误(在浏览器中,当试图查看uri时)。 errorCode:RequestBindingException。消息:无法绑定请求。ServiceStack RequestBindingException

这里是我有DTO的:

[Route("/jtip/cases/{Count}, GET")] 
public class AgencyCaseSummary : IReturn<AgencyCaseSummaryResponse> 
{ 
    public int Count { get; set; } 
} 

public class CaseSummary 
{ 
    public int Id { get; set; } 
    public string AgencyCaseNumber { get; set; } 
    public string AgencyRepName { get; set; } 
    public string Service { get; set; } 
    public string Milestone { get; set; } 
    public string Status { get; set; } 
} 

public class AgencyCaseSummaryResponse 
{ 
    public List<CaseSummary> CaseSummary { get; set; } 
    public int ActiveCaseCount { get; set; } 
    public int OpenRequestCount { get; set; } 
} 

这是我的服务:

public class AgencyCaseSummaryService : ServiceStack.ServiceInterface.Service 
{ 
    // Injection handled by Funq 
    public IRequestService RequestService { get; set; } 
    public ILog Log { get; set; } 

    /// <summary> 
    /// Gets the case summary for the most recent cases 
    /// </summary> 
    /// <param name="request"></param> 
    /// <returns></returns> 
    public AgencyCaseSummaryResponse Get(AgencyCaseSummary request) 
    { 
     AgencyCaseSummaryResponse summary = new AgencyCaseSummaryResponse(); 
     Log.Info("Created new agency case summary call"); 
     try 
     { 
      if (request.Count > 0) 
      { 
       var caseSummary = RequestService.GetRecentCases(request.Count); 
       summary.ActiveCaseCount = caseSummary.ActiveCaseCount; 
       summary.OpenRequestCount = caseSummary.OpenRequestCount; 

       if (caseSummary.Cases.Count > 0) 
        summary.CaseSummary = DTOMapper.Map(caseSummary.Cases); 
      } 
     } 
     catch (Exception ex) 
     { 
      Log.Error("Api.AgencyCaseService", ex); 
     } 
     return summary; 
    } 
} 

我错过了什么吗?错误是什么意思?

+0

你用什么浏览器? ng,并且它在多个浏览器中有相同的错误吗? – danielunderwood

+0

我正在使用Chrome并尝试使用IE10。另外,我正在使用一个具有浏览器并显示原始输出的REST客户端GUI工具。错误在所有3.错误是相同的。 –

回答

7
[Route("/jtip/cases/{Count}, GET")] 
public class AgencyCaseSummary : IReturn<AgencyCaseSummaryResponse> 
{ 
    public int Count { get; set; } 
} 

路由属性需要的URL模板和方法作为单独的参数(见RouteAttribute.cs

因此,要解决您的问题改变属性

[Route("/jtip/cases/{Count}", "GET")] 

至于什么错误方式,当路由匹配但是URL不能被转换(或反序列化)时,它被RestHandler(RestHandler.cs)抛出。

+0

由错位的引号字符挡住。谢谢你,威尔史密斯。 –