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

2023-12-06

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

类型名称“ServiceReference1”在类型中不存在 '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();
        }
    }
}

你的错误中有一个提示:

类型名称'ServiceReference1'类型中不存在'WcfServiceClient.ServiceReference1.WcfServiceClient'

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

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

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

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

  1. 放弃领先I来自合约接口的名称,以及
  2. 追加Client.

从您发布的代码来看,您的合约接口似乎被命名为IWcfService。因此,Visual Studio 创建了名称WcfServiceClient对于它生成的代理类。

解决:为了避免编译错误Reference.cs,在您的客户端代码中,将您的命名空间命名为除WcfServiceClient.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从客户端访问 WCF 服务时出错 的相关文章

随机推荐