我想讓我的第一個WCF程序。它應該很簡單,但我無法實現它的工作。C#: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();
行。
我也在cmd中檢查了netstat -a
。並且似乎8000端口在聆聽模式下打開。所以問題應該在客戶端部分。
操作系統Windows 7/ VS 2010/ C#
嘗試在服務器上放置一個斷點,該呼叫是否實際進入? – 2013-02-24 12:45:01
@ImmortalBlue究竟在哪裏?我不明白你的意思是「在服務器上」。 – xperator 2013-02-24 14:48:21
好吧,您的服務類廣泛地說是在服務器上運行。在C#中,這相當於您的服務類(在您的情況下是WCF類)。在工作返回線上劃一個斷點,看看它是否被調用,返回是否被正確執行,或者如果它沒有得到那麼多。我建議開始一個香草WCF項目,看看如果沒有任何修改工作。 – 2013-02-24 15:24:32