我一直收到与冲突端口相关的错误。当我在Program.cs中的包含
的行中设置断点时ServiceRuntime.RegisterServiceAsync
它实际上在服务结构项目中每个服务停止一次,这显然是为什么它试图不止一次绑定到同一个端口!为什么突然这样做?!
HttpListenerException: Failed to listen on prefix 'https://+:446/' because it conflicts with an existing registration on the machine.
答案 0 :(得分:0)
问题是httplistener正在尝试绑定到已在使用的端口。导致此问题的原因可能是以下之一。
netstat -ano
找出使用该端口的进程,然后tasklist /fi "pid eq <pid of process>"
查找进程名称。如果此操作失败,请您发布ServiceManifest.xml
的片段。
应该有一行定义您的端点<Endpoint Protocol="https" Type="Input" Port="446" />
答案 1 :(得分:0)
在您的应用程序清单中,您可以定义所需服务的实例数,人们常常犯的错误是将此数字设置为大于1,并且它将失败,因为您的本地群集显示5个节点,但它们都是在同一台机器上运行,机器端口仅在启动的第一个实例中使用。
将实例数设置为1,您不会在program.cs的主要入口点看到多个入口。
使其可以从ApplicationParameters进行配置,因此您可以根据环境定义这些数字。
答案 2 :(得分:0)