【发布时间】:2016-02-24 12:44:50
【问题描述】:
我有一个 Web 服务,我目前正在从两个不同的应用程序 WPF 和 MVC 访问它。在这两个应用程序中,我都调用了自动生成的异步 Web 服务方法。
到目前为止,WPF 应用程序运行良好,但是当从 MVC 应用程序调用相同的异步 Web 方法时,Web 服务永远不会响应。该服务的跟踪几乎是空的,在调试时我可以看到该方法正在终止,因为它应该是。 此外,可以毫无问题地从 mvc 应用程序调用不同的异步方法。 绑定和端点的配置在两个应用程序中完全相同。
这真的把我吓坏了,因为这种行为看起来很随意,我就是不知道出了什么问题。 非异步调用有效,甚至可以从 MVC 应用程序调用其他异步方法。
这就是我调用方法的方式:
try
{
var result = await this._serviceChannel.GetResultsAsync(newerThan);
return result;
}
..
这就是服务的方法:
[OperationContract(Action = "GetChangedResults", ReplyAction = "GetChangedResults")]
[PrincipalPermission(SecurityAction.Demand, Role = "GetResults")]
public IEnumerable<Results> GetChangedResults(DateTime newerThan)
{
using (ResultUnitOfWork ruow = new ResultUnitOfWork())
{
return ruow.GetChangedResults(newerThan);
}
}
有什么想法或建议吗? 谢谢和问候
编辑:
我已将方法主体更改为在调用后直接返回 NULL - 也没有响应:
public IEnumerable<DcLecturer> GetChangedLecturers(DateTime newerThan)
{
return null;
}
【问题讨论】:
-
服务是如何产生的?您可以发布服务的实际代码吗? GetResultsAsync 的
标签: c# wcf asynchronous