私はWPFアプリケーションをやっていますが、WCFサーバーでも問題はありません。私はServiceHostを開いてクライアントのポートで待ち受ける必要があります。それは始まりますが、私が持っている問題は、ホストのhost.openのコードを記述して、の後のコンストラクタにthis.InitializeComponent()が例外で失敗するということです。私がボタンでホストを開き、アプリを起動した後に押すと、問題なく動作します。c#WCF host.openに失敗しました
どうしてこの問題を解決できますか?
私はtcp.netチャンネルを利用しています。私はアプリケーションでそれをホストしていますが、受信した例外は既に登録されているサービスに関するものです。クライアント上
例外は次のとおりです。
inner exception message :"An existing connection was forcibly closed by the remote host"
error number: 10054
Socket error: System.Net.Sockets.SocketError.ConnectionReset
おかげ
ウォーリー
コンストラクタは次のとおりです。
public Window1()
{
this.InitializeComponent();
starthost();
}
private void starthost()
{
host = new ServiceHost(typeof (Window1),
new Uri[]{ new Uri("net.tcp://localhost:8000") });
host.AddServiceEndpoint(typeof(IGanador), new NetTcpBinding(), "Contador");
host.open(); //it fails with this line here but not in a button
}
あなたのコードはどうですか?私が推測しなければならないことは、コードを2回実行するようなコードを書いているように聞こえると思います。 – tomasr
私は、System.ServiceModelがクライアント要求を受け取るたびに私のwindow1コンストラクタを呼び出していることを知りました。これはMicrosoftのバグですか?それとも期待される行動ですか? それはちょうど私に意味をなさない。 –
いいえ、おそらく、デフォルトの「通話」インスタンシングモードがオンになっている可能性があります。これは予想される動作です。クライアントからの各要求はサーバーのインスタンスを起動します。 –