初めての 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 がリッスン モードで開いているようです。したがって、問題はクライアント部分にあるはずです。
OS Windows 7 / VS 2010 / C#