【发布时间】:2013-10-11 17:25:18
【问题描述】:
我有一个 WCF 服务,它应该从某个范围内返回特定机器的最大日志日期,如果该机器没有日志条目,则返回 null:
public DateTime? GetLastBootEvent(string laptopName)
{
ITDashboardDataContext itdb = new ITDashboardDataContext();
DateTime? latestEvent = (from be in itdb.tl_sta_bootTimes
where be.machineName.ToUpper() == laptopName.ToUpper()
select be.timestamp
).Max();
return latestEvent;
}
但是,当我运行它时,我收到以下错误:
“由于内部错误,服务器无法处理请求。有关该错误的详细信息, 在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自配置行为)以发送 异常信息返回给客户端,或根据 Microsoft .NET Framework SDK 文档打开跟踪并检查服务器跟踪日志。"
那里没有太多信息。我想通过使用DateTime? 而不是DateTime 这应该允许返回空值?
我可以通过返回一些过去的随机日期的方法来处理这个问题,比如 MinDate,但我想干净利落地做到这一点。
【问题讨论】:
-
您可以打开跟踪查看错误stackoverflow.com/questions/4271517/how-to-turn-on-wcf-tracing 代码看起来没问题,我会大胆猜测并说集合没有元素并且最大允许异常
-
在 wcf 中返回可为空的 DateTime 非常好
-
我看不出有任何理由相信该错误与可空类型有关。
-
您确定您的服务器方法中的其他内容不只是抛出异常吗?我不确定这是日期时间的回归吗?这就是问题所在。
标签: c# wcf datetime null nullable