将Web服务引用添加到控制台应用程序

时间:2009-05-20 13:31:19

标签: c# visual-studio wcf web-services console

我在控制台应用中创建一个简单的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();
                }


            }
        }

6 个答案:

答案 0 :(得分:11)

解决方案:

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

答案 1 :(得分:2)

您需要阅读有关WCF MEX端点的信息。这是一个blog post that may help

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

    enter image description here

enter image description here

答案 4 :(得分:0)

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

答案 5 :(得分:0)

到目前为止,还没有人提到您需要几件事才能使用“添加服务参考”。

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

祝您编程愉快!