C# IIS网站应用程序除了端口80外不能工作

C# IIS网站应用程序除了端口80外不能工作,c#,asp.net,wcf,iis,networking,C#,Asp.net,Wcf,Iis,Networking,我在visual studio 2017中编写了一个WCF服务。然后,我将此服务添加到IIS(不是express版本,而是完全成熟的IIS)。它作为应用程序添加到默认创建的网站下。我可以在http://localhost//MyService.svc/test/123/test/123只是一个简单的GET端点 默认网站已为端口80配置 但是,当我将端口从80更改为1234时,它不工作。当我点击/test/123端点时,它只返回我“服务不可用。HTTP错误503。” 我已经执行了console命令

我在visual studio 2017中编写了一个WCF服务。然后,我将此服务添加到IIS(不是express版本,而是完全成熟的IIS)。它作为应用程序添加到默认创建的网站下。我可以在
http://localhost//MyService.svc/test/123
/test/123
只是一个简单的GET端点

默认网站已为端口80配置

但是,当我将端口从80更改为1234时,它不工作。当我点击
/test/123
端点时,它只返回我
“服务不可用。HTTP错误503。”

我已经执行了console命令,将端口添加到ACL
netsh http add urlacl url=http://+:1234/user=everyone

有人知道如何让另一个端口(非80)工作吗

编辑: 我知道有一个答案解释了如何绑定到另一个端口。但是,接受的答案使用net.tcp协议。我想使用HTTP协议

有没有办法用HTTP协议做到这一点?如果做不到,那么我想我必须重新设计并切换到net.tcp协议


我对.NET开发和WCF非常陌生,希望有经验的人能给我指出正确的方向。

事实证明,这个问题与所谓的链接答案无关

在IIS中运行WCF服务之前,我尝试将其部署为was,然后部署为控制台应用程序。在让这两个实现正常工作的过程中,我必须执行命令
netsh http add urlacl url=http://+:1234/user=everybody
,以便访问端口

纯属运气,我偶然发现了这个链接:

虽然它没有一个被接受的答案,但评论给出了答案。我的问题正是因为执行了
netsh
命令而引起的。发生的情况是,该命令导致保留该ip/端口,因此,IIS无法连接到该ip/端口,因此出现
服务不可用
错误。我假设如果WAS和Console版本需要执行该命令,那么IIS版本也需要它

至于让IIS WCF服务在任何其他端口上可用,这个过程非常简单。在IIS本身中(在Run to launch中执行“inetmgr”),在您创建的默认或自定义网站中,编辑绑定并将HTTP端口更改为所需的任何端口。在那之后,一切都结束了。您应该能够通过HTTP从该端口访问应用程序/网站。 如:
http://localhost://MyService.svc/test/123

我的WCF服务配置是允许HTTP访问的标准配置

如果您想从另一台计算机或internet访问它,则需要将路由器配置为端口转发所选端口(如果需要),并确保防火墙允许该端口的数据流


很多“感谢”那些认为这是重复的下层选民。您的“帮助”有助于找到问题的解决方案。

这里的答案有用吗?有许多可能的解决办法。首先,您是否检查了本地防火墙?尝试将其关闭。该链接的可能副本,即答案,涉及使用net.tcp协议。我目前正在使用http,以便可以通过浏览器访问端点。最好不要使用net.tcp协议。有没有办法继续使用http协议,但将其映射到另一个端口?使用IIS Express时,它会将自身映射到某个随机http端口(例如:55765)。考虑到这一点,即使在IIS中托管,它也应该是可以做到的。