gpt4 book ai didi

c# - 从客户端访问 WCF 服务时出错

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:01 25 4
gpt4 key购买 nike

我创建了一个添加两个整数的简单 WCF 服务。服务主机完美启动。但在客户端,我在 Reference.cs 中收到以下编译错误:

The type name 'ServiceReference1' does not exist in the type 'WcfServiceClient.ServiceReference1.WcfServiceClient'

客户端代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WcfServiceClient
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
ServiceReference1.WcfServiceClient client = new ServiceReference1.WcfServiceClient("BasicHttpBinding_IWcfService");
int result = client.Add(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));
Label1.Text = result.ToString();
}
}
}

最佳答案

在你的错误中有一个提示:

The type name 'ServiceReference1' does not exist in the type 'WcfServiceClient.ServiceReference1.WcfServiceClient'

请注意,生成的类名 WcfServiceClient 与您的命名空间的第一个组件的名称相同:

WcfServiceClient.ServiceReference1.WcfServiceClient
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
1st component generated
of namespace class name

这导致无法解析 WcfServiceClient 类。 (在 .NET 中,通常建议确保类名与命名空间组件的名称不同。)

请注意,您没有专门为自动生成的代理类提供名称;该名称由 Visual Studio 为您创建。我相信 Visual Studio 创建的代理类的名称是从它实现的契约接口(interface)派生的。具体来说,代理类的名称似乎是由以下人员创建的:

  1. 从合约接口(interface)的名称中删除前导的I,以及
  2. 附加客户端

从您发布的代码来看,您的合约接口(interface)似乎名为 IWcfService。因此,Visual Studio 为其生成的代理类创建名称 WcfServiceClient

解决方案:为避免 Reference.cs 中的编译错误,请在客户端代码中将命名空间命名为 WcfServiceClient 以外的名称.

关于c# - 从客户端访问 WCF 服务时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31357502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com