【发布时间】:2013-11-08 21:50:29
【问题描述】:
我有一个包含以下方法的 WCF 服务。服务中的所有方法都是异步的,编译得很好。
public async Task<Boolean> ValidateRegistrationAsync(String strUserName)
{
try
{
using (YeagerTechEntities DbContext = new YeagerTechEntities())
{
DbContext.Configuration.ProxyCreationEnabled = false;
DbContext.Database.Connection.Open();
var reg = await DbContext.aspnet_Users.FirstOrDefaultAsync(f => f.UserName == strUserName);
if (reg != null)
return true;
else
return false;
}
}
catch (Exception)
{
throw;
}
}
我的客户端应用程序被设置为使用“允许生成异步操作”复选框访问 WCF 服务,并且它生成了代理就好了。
我在尝试使用以下代码从我的客户端调用此 WCF 服务方法时收到上述主题错误。请注意,我知道错误消息的含义,但这是我第一次尝试从客户端调用 WCF 服务中的异步任务。
Task<Boolean> blnMbrShip = db.ValidateRegistrationAsync(FormsAuthentication.Decrypt(cn.Value).Name);
我需要做什么才能正确调用该方法,以便设计时编译错误消失?
【问题讨论】:
-
您的代表为 572。您发布这种格式错误的代码的借口为零。请修复它。
-
你看过生成的代理代码的签名了吗?
-
Jon,生成的代理代码如下: public void ValidateRegistrationAsync(string strUserName) { this.ValidateRegistrationAsync(strUserName, null);我期待它返回一个布尔值。不知道是WCF服务方法不对还是客户端代码不对。 }
-
大卫,格式化代码有什么问题? WCF 方法正是它在 Visual Studio 中使用 CTRL-K 格式的方式,而客户端代码只是一行也使用 CTRL-K 格式化。所以我不知道你的问题是什么......
标签: c# multithreading wcf asynchronous task