我构建了一个基本的 WCF 服务,现在想将其托管在 Windows Server 2008 R2 下的 IIS7 中。
我将该服务作为应用程序添加到默认网站下,但每当我尝试运行该应用程序时,都会出现以下错误:
HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid.
Config Error - Cannot read configuration file due to insufficient permissions
使该服务正常运行的唯一方法是,在添加服务时选择“以服务器管理员身份连接”。 “应用程序用户(直通身份验证)”选项似乎不起作用。
有人能帮助我吗?我刚刚开始使用 IIS7,不知道该怎么办...谢谢
答案1
这是一个权限问题,也是您需要解决的双重问题(取决于您的目标是什么)。
您需要确定此站点是否应匿名,或者是否需要密码。1a. 如果您需要身份验证,则需要确定是集成身份验证还是基本身份验证。如果选择基本身份验证,则需要 SSL 证书。如果选择集成身份验证,请记住默认情况下 NTLM 仅限于单跳身份验证。因此,如果您需要用户登录以访问远程文件共享或 SQL 服务器(以他们自己而不是应用程序池的身份进行身份验证),则需要 kerberos(它有其自身的复杂性)
您需要确保为指向 IIS 的目录设置了 NTFS 权限。
答案2
IIS 应该会向您提供关于问题所在的详细信息。如果您仍然发现很难追踪错误,请参阅博客解决 IIS 7 中的 HTTP 500.19 错误
答案3
好吧,您可以先检查目录和文件具有哪些权限,然后添加所需的权限。在默认的 2008 r2 安装中,用户组在 inetpub 下具有读取和列出权限,因此这绝对可行,尽管它可能不那么安全。
答案4
你可以尝试:
IIS->站点->(DefaultWebSite 或您的站点)->功能视图->双击错误页面->编辑功能设置-> 选择详细错误-> 按确定。
另外,这里还有一篇关于调试 WCF 服务的帖子: IIS 中 WCF 服务无法正常工作的详细错误