私は基本的な契約プロジェクトを持っています:
[ServiceContract]
public interface IEchoService
{
[OperationContract]
string GetUpper(string text);
[OperationContract]
string GetLower(string text);
}
奉仕プロジェクト:
public class EchoService : IEchoService
{
public string GetUpper(string text)
{
return text.ToUpper();
}
public string GetLower(string text)
{
return text.ToLower();
}
}
セルフホストプロジェクト:
class Program
{
static void Main(string[] args)
{
var container = new WindsorContainer();
container.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero);
container
.Register(
AllTypes
.FromThisAssembly()
.InSameNamespaceAs<IEchoService>()
.WithServiceDefaultInterfaces()
.Configure(c =>
c.Named(c.Implementation.Name)
.AsWcfService(
new DefaultServiceModel()
.AddEndpoints(WcfEndpoint
.BoundTo(new NetTcpBinding(SecurityMode.None))
.At(string.Format(
"net.tcp://localhost:10333/MyServices/{0}",
c.Implementation.Name)
)))));
Console.WriteLine("hosting...");
while (Console.ReadKey().Key != ConsoleKey.Q)
{
}
}
クライアントからサービスに接続しようとすると、次のエラーメッセージが表示されます。
net.tcp:// localhost:10333 / MyServices/EchoServiceに接続できませんでした。接続の試行は00:00:02.0904037の期間続きました。TCPエラーコード10061:ターゲットマシンが127.0.0.1:10333をアクティブに拒否したため、接続を確立できませんでした。
そこで、netstatを確認したところ、コンソールサービスは実行可能ですが、ポート10333でリッスンしていません。そのポートを使用しているプログラムは他になく、他のいくつかのポート番号に変更しましたが、それだけです。 netstatには表示されません。
コンソールサービスの何が問題になっている可能性がありますか?または私が見逃したかもしれない構成設定はありますか?