【发布时间】:2017-12-08 15:54:42
【问题描述】:
我在 Visual Studio 2017 中编写了一个 WCF 服务。然后我将此服务添加到 IIS(不是快速版本,而是完整的 IIS)。它作为应用程序添加到默认创建的网站下。我可以在http://localhost/<websitename>/MyService.svc/test/123 毫无问题地访问我的服务端点。 /test/123 只是一个简单的 GET 端点。
默认网站已配置为端口 80。
但是,当我将端口从 80 更改为 1234 时,它不起作用。当我点击/test/123 端点时,它只会返回我"Service Unavailable. HTTP Error 503."。
我已经执行了控制台命令将端口添加到 ACL netsh http add urlacl url=http://+:1234/ user=everyone。
有谁知道我怎样才能让另一个端口(非 80)工作?
编辑: 我知道有一个答案How to run WCF service on a specific port 解释了如何绑定到另一个端口。但是,接受的答案使用 net.tcp 协议。我想使用 HTTP 协议。
有什么方法可以使用 HTTP 协议吗?如果做不到,那我想我得重新设计并换成 net.tcp 协议了。
我对 .NET 开发和 WCF 非常陌生,因此希望有经验的人可以为我指明正确的方向。
【问题讨论】:
-
这里的答案有效吗? stackoverflow.com/questions/8514766/…
-
有很多可能的解决方案。首先,您是否检查了本地防火墙?尝试将其关闭。
-
那个链接,那个答案,谈论使用 net.tcp 协议。我目前正在使用 http - 以便可以通过浏览器访问端点。不需要使用 net.tcp 协议将是非常优先的。有没有办法继续使用 http 协议但将其映射到另一个端口?当使用 IIS Express 时,它会将自己映射到某个随机的 http 端口(例如:55765)。给这个,尽管托管在 IIS 中,它应该是可行的。
标签: c# asp.net wcf iis networking