看起来像ServiceStack不喜欢我在我的请求中使用DateTime属性作为参数。我收到了“错误的请求”消息......没有其他有用的细节。内部异常显示HTML代码(截断),只是说“的类型定义应该开始以‘{’期待系列化型‘错误响应’......”ServiceStack DateTime反序列化问题
在我的客户:
private DateTime _selectedReportDate;
public DateTime SelectedReportDate
{
get { return _selectedReportDate; }
set { SetProperty(ref _selectedReportDate, value); }
}
....
var txResults = await ServiceClient.Instance.GetAsync(new PaymentSummaries()
{
Date = SelectedReportDate
});
服务模式:
[Route("/report/paymentsummaries/{Date}", "GET")]
public class PaymentSummaries : IReturn<List<PaymentSummary>>
{
public DateTime Date { get; set; }
}
服务接口:
[Authenticate]
public class PaymentSummariesService : Service
{
public List<PaymentSummary> Get(PaymentSummaries request)
{
var results = Db.SqlList<Data.OrmLite.SpResponse.ReconcilePaymentSummaryRecord>("EXEC [Report].[ReconcilePaymentsSummary] @date", new { date = request.Date });
return results.ConvertAll(x => x.ConvertTo<PaymentSummary>());
}
}
我得到一个 “错误的请求”错误。
当我改变:
Date = SelectedReportDate
到
Date = new DateTime()
在客户端代码,它的工作,并且击中出于某种原因,服务接口代码。
更新
这里的请求报头:
GET http://devservicestack:44345/report/paymentsummaries/2016-11-30T13%3A09%3A15.6795974-05%3A00 HTTP/1.1的Accept-Encoding:gzip的,放气接受:应用/ JSON 的User-Agent:ServiceStack .NET客户端4.54主机:devservicestack:44345 Cookie:ss-id = F4Bt4aMonhyFQcfqmSmR; SS-PID = K6aJMA17Xw31qIVy1z8V; SS-OPT =温度
的响应报头告诉我:
[HttpException(0X80004005):从客户端(:)中检测到潜在危险的Request的 值]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig()9827624
System.Web.PipelineStepManager.ValidateHelper(HttpContext的上下文)53
您可以创建一个[MCVE](http://stackoverflow.com/help/mcve)吗? –
你正在传递的价值是! – Aravind
如果捕获抛出的异常,ErrorMessage属性是什么? –