如何将 WCF 服务发布到 IIS?

how do I publish a WCF service to IIS?

此时,当我从 Visual Studio 运行 时,我有一个 WCF 服务使用 Cassini/IIS Express 和 .NET 客户端一起工作,但是当我尝试发布时遇到困难它直接到IIS。由于某种原因,我无法连接到 WCF 服务。我一直在研究如何通过查看这些 Microsoft 在线文档来发布:

https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-service-publishing

现在我只是想在本地发布它,我选择将它发布到 File SystemC:\inetpub\wwwroot\GeoService 但是当我尝试浏览到服务器时,我只会收到如下错误:

顺便说一句,我试过浏览这些网站:

http:///localhost/GeoService.svc

http:///localhost/GeoService/

http:///localhost/GeoService/GeoService.svc

我在哪里遇到这样的错误:

HTTP Error 404.0 - Not Found

HTTP Error 403.14 - Forbidden

请注意完整的源代码在这里:

https://github.com/john1726/WcfEndToEnd.git

我错过了什么?有没有人有什么建议? TIA.

请注意,我尝试执行 Microsoft 在线文档中的步骤,但最终不得不通过转到 Programs and Features -> 转向 Windows Features on or off 并选择 .NET Framework [来更新服务器] =14=] 我启用了所有选项,因为不再支持 aspnet_regiis.exe -irServiceModelReg.exe -ia 命令:

  • ASP.NET 4.8
  • WCF 服务

对于我打开的 WCF 服务:

HTTP Activation
MSMQ Activation
Named Pipe Activation 
TCP Activation
TCP Port Sharing

我也开启了Windows Process Activation Service:

.NET Environment

此外,我必须通过转到 IIS Manager 并导航到 MyServer -> Sites -> My Site 并单击Directory Browsing 并选择 Enable.

我做的另一个步骤是通过打开或关闭功能启用 IIS 6 元数据库我去了 Internet Information Services -> Web Management Tools -> IIS Metabase and IIS 6 configuration compatibility

Error - Unable to access the IIS metabase

因此我最终使用的 URL 是:

http://localhost/GeoService/GeoService.svc