.net 监听同一端口、不同IP地址、WCF+;非WCF应用程序

.net 监听同一端口、不同IP地址、WCF+;非WCF应用程序,.net,wcf,networking,tcp,.net,Wcf,Networking,Tcp,我在具有5个虚拟IP地址(IP1-IP5)的机器的端口IP1:80上有一个应用程序绑定 然后,我尝试将自托管WCF服务绑定到IP5:80,但得到了一个AlreadyUseException。我猜WCF正在尝试绑定到整个IP范围,尽管我指定了一个特定的IP范围 这是已知的行为吗 [start application that binds to IP1:80] string baseAddress = "http://IP5:80/binary";

我在具有5个虚拟IP地址(IP1-IP5)的机器的端口IP1:80上有一个应用程序绑定

然后,我尝试将自托管WCF服务绑定到IP5:80,但得到了一个AlreadyUseException。我猜WCF正在尝试绑定到整个IP范围,尽管我指定了一个特定的IP范围

这是已知的行为吗

            [start application that binds to IP1:80]


            string baseAddress = "http://IP5:80/binary";

            ServiceHost host = new ServiceHost(typeof(BinaryService),
                                               new Uri(baseAddress));


            host.AddServiceEndpoint(typeof(IBinaryService), GetBinding(), "")
                                   .Behaviors.Add(new WebHttpBehavior());

            host.Open(); // exception
找到解决方案:

Run netsh
Type http
Type add iplisten ipaddress=IP5:80

在此之后,自托管WCF应用程序将不会尝试绑定到80上的完整范围,仅IP5

是什么让你“猜测WCF试图绑定整个IP范围”?该IP上的端口不能被使用吗,类似于?我这样认为的原因是:我可以在IP5:80上运行另一个非wcf应用程序实例,它工作得很好。另一方面,WCF只有在所有IP上的端口空闲时才会启动。“IP5”是计算机的名称吗?WCF将绑定到计算机,而不是一个特定的IP地址,如果你这样做…不,它是一个IP地址。请参阅下面的解决方案。