Windows Server 2008 R2 上的 WCF 服务问题

Posted

技术标签:

【中文标题】Windows Server 2008 R2 上的 WCF 服务问题【英文标题】:WCF Service Issue on Windows Server 2008 R2 【发布时间】:2012-07-29 11:33:28 【问题描述】:

我有一个 WCF 服务在 Windows Server 2008 上运行而没有问题,并且刚刚将该服务移至 Windows Server 2008 R2 实例。站点和服务的域名都指向了新服务,并且 ASP.NET 站点运行良好。也就是说,在尝试运行 wsdl=wsdl10 命令时,WCF 服务不断抛出 Endpoint not found 响应。

我尝试在 v3.0/Windows Communication Foundation 目录中安装 ServiceModelReg;编辑 applicationHost.config 文件以添加 .svc mimeType,我检查了 Handler Mappings 但 SVC 已经存在。我尝试从 4.0 目录运行 aspnet_regiis -iru。

没有任何效果。

然后我尝试删除并重新添加 WCF 激活和进程激活功能 - 那里没有帮助。我重新检查了 web.config 文件,但它使用域名而不是 IP 地址来定义端点的位置。

我完全被卡住了 - 有人有什么想法吗?

【问题讨论】:

你能导航到新服务器上的 http://servername/path/servicename.svc 吗? 否 - 400 错误请求错误。作为更新,我发现了以下页面 - ***.com/questions/8939574/… 和我合作的主机提供商同意这是问题,但目前还没有解决方案。 【参考方案1】:

事实证明,您需要将 Application Server 角色添加到 Web 服务器 (http://technet.microsoft.com/en-us/library/cc754024%28v=ws.10%29.aspx) Windows Server 2008 及更高版本。这可以解决大部分问题。

其次,包含网站的文件夹中的所有文件(包括 DLL、图像、所有内容)都需要向 IUsers 组提供读取和执行权限。

最后,如果您使用任何 3rd 方 DLL,您需要确保 IIS 具有完全控制权 - http://learn.iis.net/page.aspx/624/application-pool-identities/

【讨论】:

【参考方案2】:

我想在此添加第四个选项。

我的启用 AJAX 的 WCF 服务不工作,因为在服务器上应用程序有一个安全的 SSL 连接。你可以在这里找到更多:MSDN

它说:

只要包含服务的 IIS 虚拟目录支持这些设置,IIS 托管的 WCF 服务就可以利用 HTTP 传输安全性(例如,HTTPS 和 HTTP 身份验证方案,如 Basic、Digest 和 Windows 集成身份验证)。托管终结点绑定上的 HTTP 传输安全设置必须与包含它的 IIS 虚拟目录上的传输安全设置匹配。

这里有一个解决方法:How to programmatically configure SSL for WCF Services

【讨论】:

以上是关于Windows Server 2008 R2 上的 WCF 服务问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Powershell 在 Windows Server 2008 R2 上的 GAC 中安装 dll

在 asp.net 中的 windows server 2008 R2 上的 PDF 缩略图

Windows Server 2008 R2 上的 .NET 2.0 Web 服务未找到模块异常

无法让 nservicebus 性能计数器在 Windows Server 2008 R2 上的开发/自主机中工作

如何破解windows server 2008r2远程连接数2个的限制

Windows2008 Server r2 64位显示桌面图标的方法