我有两个服务设置。 Service1工作正常。 Service2的地址不好。为什么当我尝试调用Service1时它失败并出现错误:
the value of the property 'address' cannot be parsed
如果我在Service2上修复了坏地址,那么事情就会重新开始。我希望Service1能够继续运行,即使Service2被破坏了。
代码
try
{
var client = new FooWurldClient();
Console.WriteLine(client.DoWork());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
;
try
{
var client2 = new HelloWorldService.HelloWorldClient();
Console.WriteLine(client2.DoWork());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
配置
地址错误
<endpoint address="http://localhost:631562222/BadService.svc"
请注意,即使我注释掉client2(服务质量差)代码,client1(良好服务)也会失败。
答案 0 :(得分:0)
解析器在某种程度上足够聪明,可以识别端口高于65535的最大临时端口。我将端口号降低到范围内的一些随机无效端口号,故障消失了。
看到这一点仍然令人惊讶。
答案 1 :(得分:0)
运行时在启动应用程序代码之前读取配置。由于地址不好而导致读数异常抛出,并未陷入您期望的位置,在终点线后不久说,导致整个读取失败;所以所有的服务都失败了。
如果您在应用程序代码中分配了错误地址,可能是通过通用设计,可能会隔离错误端口号的错误。
尽管如此,我确实认为在配置中超出边界的坏端口是一个严重的错误,基本上是格式错误的XML或不合格的架构,运行时间应该在启动所有服务时失败。对于这些问题,运行时间是一致的。