一个WCF问题(已经解决)
碰到这个问题已经很久了
也困扰了我很久了,拿出来希望哪位高手能否帮忙解决一下
这个问题是这样的
WCF服务的代码都是一样的
就是UI层选择不一样而已
一个以Console程序来实现
而另外一个是WPF程序
以下是Console程序的代码
1
using System;
2
using System.ServiceModel;
3![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
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
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
WPF实现时的代码是
1
using System.ServiceModel;
2
using System.Windows;
3![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
namespace 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![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
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![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
private void btnCancel_Click(object sender, RoutedEventArgs e)
28
{
29
if (host!=null)
30
host.Close();
31
this.Close();
32
}
33
}
34
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
都显示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
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
换成
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
具体深层的原因不明。。。
很诡异的一个问题
不知是不是一个bug??