c# - WCF 服务引用不提供非异步方法

标签 c# wcf iis asynchronous

我最近用 C# 创建了一个 WCF 服务,并将其托管在运行 IIS 8 的服务器上。

在本地测试时一切都完美无缺,我能够成功测试我的所有方法。当我尝试在单独的项目中添加对该 WCF 服务的服务引用时,我的问题就出现了,此时它公开的唯一方法是 async 方法,即使我从未将我的任何方法实现为异步。

一个方法的例子是:

public string getName(User user)
{
     return user.name;
}

当我在 Visual Studio 中测试它时,这种简单的方法会起作用,但是当我在 IIS 中托管它并尝试添加服务引用时,我似乎可以调用或访问的唯一方法是:

getNameAsync

为什么它会这样做,即使我从来没有把它实现为 async 首先?最重要的是,当我首先添加服务引用时,我无法取消选中“为异步生成方法”。

有什么想法吗?

编辑:作为引用,我正在尝试在引用该服务的 Windows 8.1 应用程序中测试这些方法。

最佳答案

代码是这样生成的。通常,您还会发现您在客户端代码中订阅的名为 GetNameCompleted 的事件(在创建方法 ClientGetNameCompleted 之后):

client.GetNameCompleted += ClientGetNameCompleted ;

在此方法中,您将使用服务结果。类似的东西:

private void ClientGetNameCompleted (object sender, GetNameCompletedEventArgs e)
{
    if (e.Result != null)
    {
        // use the e.Result that contains the returned data;
    }
}

关于c# - WCF 服务引用不提供非异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27448388/

相关文章:

c# - "System"警告颜色(红色)

c# - 为什么将 Winforms DateTimePicker 设置为 DateTime.MinValue 会失败?

wcf - 为什么 Silverlight 2 只支持 WCF basicHTTP 绑定(bind)?

c# - 对 .NET 云服务提供商的建议

azure - 在 IIS web.config 中使用动态 IP 安全设置时忽略某些 IP 或 IP 范围

C# 网络适配器电缆已拔出或适配器已禁用

c# - C# 中的带宽限制

c# - WCF 服务代理未设置 "FieldSpecified"属性

asp.net - IIS7 授权规则/配置 - 永久提示

javascript - 从页面重定向到子域