我正在托管我的服务:
using (ServiceHost sHost = new ServiceHost(typeof(Class1)))
{
sHost.Open();
}
// sHost.Open();
Console.WriteLine("Service Started....");
Console.ReadLine();
尝试使用渠道工厂使用该服务:
ChannelFactory<IService1> factory = new ChannelFactory<IService1>("");
var proxy = factory.CreateChannel();
var result = proxy.DoProcessing();
我可以通过端点看到服务已启动,但是当我尝试创建频道时,会出现以下错误。
测试方法TestService.Test.UnitTest1.TestMethod1抛出异常: System.ServiceModel.EndpointNotFoundException:无法连接到net.tcp://127.0.0.1/TestService。连接尝试持续时间跨度为00:00:01.0017385。 TCP错误代码10061: 无法建立连接,因为目标计算机主动拒绝它127.0.0.1:808。 ---&GT; System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:808
这是我的服务配置:
<services>
<service name="Service1.ClassLibrary.Class1">
<endpoint
address="net.tcp://127.0.0.1/TestService"
binding="netTcpBinding"
contract="Service1.Interface.IService1" />
</service>
</services>
</system.serviceModel>
客户端配置:
<client>
<endpoint address="net.tcp://127.0.0.1/TestService" binding="netTcpBinding"
contract="Service1.Interface.IService1" />
</client>
答案 0 :(得分:0)
问题在于:
using (ServiceHost sHost = new ServiceHost(typeof(Class1)))
{
sHost.Open();
}
using bloick
自动关闭服务主机,因此客户端无法使用。
相反,这很完美:
ServiceHost sHost = new ServiceHost(typeof(Class1));
sHost.Open();
Console.WriteLine("Service Started....");
//Keeps Servece Open
Console.ReadLine();
sHost.Close()