C# 将web服务引用添加到控制台应用程序
我正在控制台应用程序中创建一个简单的web服务。(个人服务) 下面是我的程序.cs 我正在尝试向其他控制台应用程序(PersonClient)添加服务引用 我该怎么做? 我尝试通过右键单击、添加服务引用、指向引用等方式添加它。。。 但它不起作用C# 将web服务引用添加到控制台应用程序,c#,visual-studio,wcf,web-services,console,C#,Visual Studio,Wcf,Web Services,Console,我正在控制台应用程序中创建一个简单的web服务。(个人服务) 下面是我的程序.cs 我正在尝试向其他控制台应用程序(PersonClient)添加服务引用 我该怎么做? 我尝试通过右键单击、添加服务引用、指向引用等方式添加它。。。 但它不起作用 [DataContract] public class Person { [DataMember] public string FirstName { get
[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();
}
}
}
您需要阅读有关WCF MEX端点的信息。这是一个。您有两个控制台EXE,其中一个运行
ServiceHost
-正确吗?在不调试的情况下运行服务器控制台;然后在IDE中将WCF引用添加到url。它应该可以工作,但是当您查询mex时,它需要服务器(您的第二个控制台exe)正在运行。添加webservice引用时,您为服务定义了名称空间和“类名”。您必须添加名称空间引用(“using FooNameSpace;”),或使用服务的完全限定类名(“FooNameSpace.BarClass ws=new FooNamesape.BarClass()” 解决方案:
- 创建一个控制台应用程序
- 右键单击引用,然后单击添加服务 参考资料
- 单击底部的“高级”按钮
- 在新窗口中,单击添加Web引用
还没有人提到,在使用“添加服务引用”之前,您需要做几件事
快乐编码 嗨,马克,我照你说的做了,我把地址指向:它给出了一个错误:下载“”时出错。请求失败,HTTP状态为400:请求错误。元数据包含无法解析的引用:“”。元数据包含无法解析的引用:“”。如果服务是在当前解决方案中定义的,请尝试构建解决方案并再次添加服务引用。当服务运行时,请尝试在web浏览器中浏览到服务uri。它可能会为您提供服务页面,告诉您如何设置mex;但是,我记不得了。当我指向服务运行时,它给出了一个找不到的页面。链接不再工作了。请更新你的答案。因为实际答案中的链接已经不起作用了,但我试过了,对我来说效果很好。谢谢@raklos将此解决方案标记为答案。