我确实知道我可能会弄错这个问题,因为我将ASP.NET应用程序移植到ASP.NET Core 2.0(主要是因为有关页面上的负载速度的优化),但我会问无论如何问题。
因此,我的查询仅在获取数据时正常工作,但是,我遇到了一个问题,同时必须从数据库中获取文件路径才能在客户端下载。由于我不需要文件的整个模型,所以我在客户端有3个字段DTO,我填写了有关文件(etc,位置,大小,文件名)的信息,问题是,当我将异步请求发送到Azure上的WCF服务持有我的实体框架链接到数据库,代码将继续进一步继续,而无需等待从数据库中检索数据并在尝试填充要进一步发送给客户端的DTO对象时引发Null引用异常为了检索为下载标记的文件
这是我在客户端
上的数据访问 internal async Task<AnimalDocument> GetAnimalDocument(int id)
{
var data = await _context.GetAnimalDocumentAsync(id);
var result = JsonConvert.DeserializeObject<AnimalDocument>(data);
return result;
}
这就是我获得无效异常的地方
public SeriliazedFile GetFile(int id, int type)
{
var result = new SeriliazedFile();
if (type == 1)
{
var data = _context.GetHumanFile(id);
result.FileName = data.Result.DocumentName;
result.FilePath = data.Result.DocumentLocation;
result.FileSize = data.Result.FileSize.Value;
}
else if (type == 2)
{
var data = _context.GetAnimalDocument(id);
result.FileName = data.Result.DocumentName;
result.FilePath = data.Result.DocumentLocation;
result.FileSize = data.Result.FileSize.Value;
}
return result;
}
是否有一种方法可以强迫异步请求等待结果,然后再返回我从WCF检索的任务?我尝试告诉_context.getanimaldocument(id).wait();但是,没有发生任何事情,它仍然没有任何结果。如果有人能给我一个工作会很好,我很确定我最终会自己弄清楚,但是无论如何,时间都很少,我希望您有美好的一天。
我很抱歉发布此信息,这不是WCF或代码以任何方式的问题,async与ASP.NET Core 2.0的效果非常好。我仍在适应函数类型前的[从body]的概念,似乎我错过了一个,默认情况下我得到了ID 0(不是我可以弄清楚为什么我会得到0而代替0在整数字段上没有数据时的null of null of Null,但无论如何都不重要。