我正在尝试制作我的第一个 WCF 程序。它应该很简单,但我无法让它工作。
到目前为止我已经完成的步骤:
IWCF.cs代码:
using System;
...etc
namespace WCF_Application
{
[ServiceContract]
public interface IWCF
{
[OperationContract]
string DoWork();
}
}
WCF.cs代码:
using System;
...
namespace WCF_Application
{
public class WCF : IWCF
{
public string DoWork()
{
return " Hello There! ";
}
}
}
按钮代码:
private void btnConnect_Click(object sender, EventArgs e)
{
// Starting the Server
ServiceHost svh = new ServiceHost(typeof(WCF));
svh.AddServiceEndpoint(
typeof(IWCF),
new NetTcpBinding(),
"net.tcp://localhost:8000");
svh.Open();
MessageBox.Show("Connected");
// Connecting Client to the server
ChannelFactory<IWCF> scf;
scf = new ChannelFactory<IWCF>(
new NetTcpBinding(),
"net.tcp://localhost:8000");
IWCF s = scf.CreateChannel();
string response = s.DoWork();
MessageBox.Show(response);
svh.Close();
}
我没有收到回复消息。该程序只是冻结。当我跟踪代码时,程序卡在了这strong response = s.DoWork();
条线上。
我还检查netstat -a
了cmd。并且似乎端口 8000 确实在侦听模式下打开。所以问题应该出在客户端部分。
操作系统 Windows 7 / VS 2010 / C#