C# 仅在尚未运行时启动WCF

C# 仅在尚未运行时启动WCF,c#,wpf,wcf,C#,Wpf,Wcf,我的服务引用中有我的WCF,当我使用visual studio run multi projects运行WPF的同时运行WCF时,一切正常,但是我现在正在连接多个客户端,如果它们在没有输入数据之前同时启动,那么它就工作了。如果一个开始输入数据,那么另一个开始,然后删除输入的数据。我已经尝试过使用它,所以它将从从我的WPF运行主机开始。不幸的是,我得到一个错误,说httpGetEnabled需要为false,如果这是false,那么我无法更新我的服务引用,因为它说存在访问问题。我用来运行主机的代码

我的服务引用中有我的WCF,当我使用visual studio run multi projects运行WPF的同时运行WCF时,一切正常,但是我现在正在连接多个客户端,如果它们在没有输入数据之前同时启动,那么它就工作了。如果一个开始输入数据,那么另一个开始,然后删除输入的数据。我已经尝试过使用它,所以它将从从我的WPF运行主机开始。不幸的是,我得到一个错误,说httpGetEnabled需要为false,如果这是false,那么我无法更新我的服务引用,因为它说存在访问问题。我用来运行主机的代码是

try
{
    ServiceHost host;
    Service1.Service1Client service = new Service1.Service1Client();
    string baseAddress = "http://localhost:59849/Service1.svc";
    host = new ServiceHost(typeof(Service1.Service1Client));
    host.AddServiceEndpoint(typeof(Service1.IService1),new BasicHttpBinding(), baseAddress);
    host.Open();          
    wcfHostId = wcf.generateId();
    textBox5.Text = "" + wcfHostId;
    button5.IsEnabled = false;
}
catch (Exception ex)
{
    MessageBox.Show("Error = " + ex.Message);
} 
编辑
所以基本上我说的是,当我自托管一个WPF和一个新的客户端连接时,它正在擦除存储在服务中的所有变量。我问是不是因为我主持服务的方式

错误是我试图发现WCF的方式,没有添加发现端点

host.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
host.AddServiceEndpoint(new UdpDiscoveryEndpoint());
需要添加到主机部分,客户端代码最终被删除

var ep = "http://" + System.Net.Dns.GetHostName() + ":8732/DatabaseTransfer/Service1/";
var binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.None;
binding.SendTimeout = new System.TimeSpan(0, 1, 30);
ChannelFactory<IService1> wcfFactory = new ChannelFactory<IService1>(binding, new EndpointAddress(ep));
IService1 wcf = wcfFactory.CreateChannel();
var ep=“http://”+System.Net.Dns.GetHostName()+”:8732/DatabaseTransfer/Service1/”;
var binding=新的BasicHttpBinding();
binding.Security.Mode=BasicHttpSecurityMode.None;
binding.SendTimeout=new System.TimeSpan(0,1,30);
ChannelFactory wcfFactory=新的ChannelFactory(绑定,新端点地址(ep));
IService1 wcf=wcfFactory.CreateChannel();

请参见此处:。我不确定是否遵循了您的问题,但您的winsdk文件夹中确实有WCFTestClient.exe。这允许您连接到服务并调用方法。您还可以在服务器端启用WCF跟踪,并使用