繁体   English   中英

添加对控制台应用程序的 Web 服务引用

[英]add a web service reference to a console app

我在控制台应用程序中创建了一个简单的 Web 服务。 (PersonService) 这是我下面的 Program.cs

我正在尝试向不同的控制台应用程序 (PersonClient) 添加服务引用,我该怎么做? 我尝试通过右键单击添加它,添加服务引用,指向引用等...但它不会工作。

        [DataContract]
        public class Person
        {
            [DataMember]
            public string FirstName { get; set; }

            [DataMember]
            public string LastName { get; set; }

        }

        [ServiceContract]
        public interface IPersonLookup
        {
            [OperationContract]
            Person GetPerson(int identifier);
        }

        public class PersonService : IPersonLookup
        {
            public PersonService()
            {
            }
            public Person GetPerson(int identifier)
            {
                Person p = new Person();
                p.FirstName="Jane";
                p.LastName="Doe";
                return p;
            }



        }


        class Program
        {
            static void Main(string[] args)
            {
                using (ServiceHost host = new ServiceHost(typeof(PersonService)))
                {
                    WSHttpBinding binding = new WSHttpBinding();
                    host.AddServiceEndpoint(typeof(IPersonLookup), binding, "http://localhost:9090/PersonService");
                    host.Open();
                    Console.WriteLine("Listening....");
                    Console.ReadLine();
                }


            }
        }

解决方案:

  1. 使用 Visual Studio 创建控制台应用程序。
  2. 右键单击该项目,然后单击“添加服务引用...”。
  3. 在窗口的底部,您会找到“高级”按钮。
  4. 单击按钮,它将打开服务引用设置窗口。 它在底部有一个名为“添加 Web 引用”的按钮。

您需要阅读有关 WCF MEX 端点的信息。 这是一篇可能有帮助博客文章

  • 创建控制台应用程序。
  • 右键单击引用,然后单击添加服务引用。
  • 单击底部的高级按钮。
  • 在新窗口中单击添加 Web 引用。

    在此处输入图片说明

在此处输入图片说明

还没有人提到在使用“添加服务引用”之前需要做几件事。

  1. 使用 Visual Studio 2019 安装程序工具修改现有安装。
  2. 检查“.NET 桌面开发工作负载”。 (这将添加第二种类型的控制台应用程序。)
  3. 现在启动 VS 2019,然后使用以下命令创建一个项目:控制台应用程序 (.NET Framework) 重要提示:不要为 .NET Core 选择一个,否则它将没有“添加服务引用”选项!
  4. 现在转到主菜单栏并选择 Project -> Add Service Reference。 现在您可以添加您的参考。

快乐编码!

您有两个控制台 exe,一个运行ServiceHost - 对吗? 在不调试的情况下运行服务器控制台; 然后在 IDE 中添加对 url 的 WCF 引用。 它应该可以工作,但是当您查询 mex 时,它需要运行服务器(您的第二个控制台 exe)。

添加 webservice 引用时,您定义了服务的命名空间和“类名”。 您必须添加命名空间引用(“using FooNameSpace;”)或使用服务的完全限定类名(“FooNameSpace.BarClass ws = new FooNameSapce.BarClass()”);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM