一个WCF问题(已经解决)

it2022-05-05  112

碰到这个问题已经很久了 也困扰了我很久了,拿出来希望哪位高手能否帮忙解决一下 这个问题是这样的 WCF服务的代码都是一样的 就是UI层选择不一样而已 一个以Console程序来实现 而另外一个是WPF程序 以下是Console程序的代码

 1 using  System;  2 using  System.ServiceModel;  3  4 namespace  ConsoleHost  5 { 6    class Program 7    { 8        static void Main(string[] args) 9        {10            using (ServiceHost host=new ServiceHost(typeof(ConsoleHost.StockService)))11            {12                host.Open();13                Console.WriteLine("启动了WCF服务器");14                Console.ReadLine();15            }16        }17    }18} WPF实现时的代码是  1 using  System.ServiceModel;  2 using  System.Windows;  3  4 namespace  JLGuo.UI  5 { 6    /**//// <summary> 7    /// HostWindow.xaml 的交互逻辑 8    /// </summary> 9    public partial class HostWindow : Window10    {11        private ServiceHost host;12        public HostWindow()13        {14            InitializeComponent();15        }1617        private void btnStart_Click(object sender, RoutedEventArgs e)18        {19            using (host = new ServiceHost(typeof(JLGuo.Services.StockService)))20            {21                host.Open();22                if (host.State == CommunicationState.Opened)23                    btnCancel.IsEnabled = true;24            }25        }2627        private void btnCancel_Click(object sender, RoutedEventArgs e)28        {29            if (host!=null)30                host.Close();31            this.Close();32        }33    }34} 都显示host已经启动成功了(app.config的配置都是类似的,也都开启了MEX) 但是Console程序使用netstat -a命令查看就可以看到其监听端口已经在监听了(比如8733) 而WPF程序使用netstat -a命令查看无法查看到要求的监听端口 (当然意味着使用添加服务引用时就算输入正确的服务器端address也没办法查找得到服务) 不知道大家有人碰到过嘛?一起解决一下 我的解决方案:(添加于2008-04-27日16:26) 只需要将WPF程序的下面代码 1 using (host  =   new  ServiceHost( typeof  (JLGuo.Services.StockService))) 2 {3} 换成 host  =   new  ServiceHost( typeof  (JLGuo.Services.StockService)); 而Console程序不需要改动 具体深层的原因不明。。。 很诡异的一个问题 不知是不是一个bug??

转载于:https://www.cnblogs.com/ibillguo/archive/2008/04/27/1172829.html


最新回复(0)