“/”应用程序中的服务器错误。
值不能为 null。
参数名: 内部错误: MessageContract 的实例在 http://tempuri.org/IFileStoreService/GetFileResponse 中不能为空。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ServiceModel.FaultException`1[[System.ServiceModel.ExceptionDetail, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]: 值不能为 null。
参数名: 内部错误: MessageContract 的实例在 http://tempuri.org/IFileStoreService/GetFileResponse 中不能为空。
返回文件流,当文件不存返回一个null 时报上面错误。
返回对象数:
[MessageContract]
public class FileResponse
{
[MessageHeader]
public long Length { get; set; }
[MessageHeader]
public DateTime CreateTime { get; set; }
[MessageHeader]
public string Extension { get; set; }
[MessageBodyMember]
public System.IO.Stream Stream { get; set; }
}
wcf 接口代码:
怎么解决接口返回null不报错?
把Model.FileResponse 这个数据契约里的 CreateTime 改成 CreateTime? 试试。
那么你提出的问题呢?
在wcf中返回null(文件存在时是不报错的),调用接口时就会报:
值不能为 null。
参数名: 内部错误: MessageContract 的实例在 http://tempuri.org/IFileStoreService/GetFileResponse 中不能为空。
怎么解决返回null时不报错呢?
@_weiz: 可以返回一个表示文件不存在的errorcode,为什么不能null,你得去看那个服务契约里的约定。