我正在关注John Sharp的“Windows Communication Foundation 4”中的示例。页面88-89显示了如何注册和启动服务。我的服务没有开始。
我需要说我无法在自己的主机中使用net.tcp来运行该服务,因为它抱怨正在使用的端口,而且这个应该使用namedPipes。
应用程序日志中的错误是
Service cannot be started. System.ServiceModel.AddressAlreadyInUseException: HTTP could not register URL http://+:8080/ProductsService/Service.svc/ because TCP port 8080 is being used by another application. ---> System.Net.HttpListenerException: The process cannot access the file because it is being used by another process
at System.Net.HttpListener.AddAllPrefixes()
at System.Net.HttpListener.Start()
at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
--- End of inner exception stack trace ---
at System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen()
at System.ServiceModel.Channels.TransportManager.Open(TransportChannelListener channelListener)
at System.ServiceModel.Channels.TransportManagerContainer.Open(SelectTransportManagersCallback selectTransportManagerCallback)
at System.ServiceModel.Channels.TransportChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.HttpChannelListener.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.Communicat...
非常感谢您的帮助。
答案 0 :(得分:4)
正如你在错误的第一行所说的那样
HTTP无法注册URL http://+:8080/ProductsService/Service.svc/,因为另一个应用程序正在使用TCP端口8080。
您正尝试在端口8080上注册,但是另一个应用程序正在使用端口8080。尝试更改端口号,直到找到未使用的端口号。
答案 1 :(得分:2)
另一项服务正在使用该端口
尝试8084