我构建了一个基本的 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,不知道该怎么做...谢谢
它是一个权限问题,它是您需要解决的两个问题(取决于您的目标是什么)。
您需要确定该站点是否应该是匿名的,或者您是否需要密码。1a。如果要进行身份验证,则需要确定是集成的还是基本的。如果您使用基本的,您将需要一个 SSL 证书。如果您使用集成,请记住默认情况下 NTLM 仅限于单跳进行身份验证。因此,如果您需要用户登录、访问远程文件共享或 SQL 服务器(以自身身份而不是应用程序池身份进行身份验证),您将需要 kerberos(它有其自身的复杂程度)
您需要确保为指向 IIS 的目录设置了 NTFS 权限。
IIS 应该会为您提供有关问题所在的良好错误消息。如果您仍然发现很难跟踪错误,请参阅博客IIS 7 中的 HTTP 500.19 错误故障排除
好吧,您可以首先检查您的目录和文件具有哪些权限,然后添加所需的内容。在默认的 2008 r2 安装中,用户组在 inetpub 下具有读取和列出权限,因此这绝对有效,尽管它可能不那么安全。
对于您设置的站点,转到身份验证并选择匿名身份验证的编辑操作。身份将是特定用户或应用程序池身份 - 无论设置哪个身份,都将告诉您需要哪个用户授予对您托管 WCF 服务的目录的文件系统访问权限。
你可以试试:
IIS->站点->(默认网站或您的站点)->功能视图->双击错误页面->编辑功能设置->选择详细错误->按确定。
否则这里有一个关于调试 WCF 服务的帖子: Detailed Errors not working for WCF Service in IIS