一个WCF问题(已经解决)

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

 1using System;
 2using System.ServiceModel;
 3
 4namespace 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实现时的代码是
 1using System.ServiceModel;
 2using System.Windows;
 3
 4namespace JLGuo.UI
 5{
 6    /// <summary>
 7    /// HostWindow.xaml 的交互逻辑
 8    /// </summary>

 9    public partial class HostWindow : Window
10    {
11        private ServiceHost host;
12        public HostWindow()
13        {
14            InitializeComponent();
15        }

16
17        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        }

26
27        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程序的下面代码
1using(host = new ServiceHost(typeof (JLGuo.Services.StockService)))
2{
3}

换成
host = new ServiceHost(typeof (JLGuo.Services.StockService));
而Console程序不需要改动
具体深层的原因不明。。。
很诡异的一个问题
不知是不是一个bug??
posted @ 2008-04-27 09:49  ibillguo  阅读(3956)  评论(8编辑  收藏  举报