wcf - 使用 IIS7 和 WCF 时出现问题 - 甚至无法加载 .SVC

标签 wcf configuration iis-7 windows-7 impersonation

我使用 v2.0.50727 框架服务开发了一个非常简单的 WCF,该服务返回一个字符串 - 一个典型的 HelloWorld() 场景。然而,配置绝对是痛苦的,我真的不明白我做错了什么。注意我是使用 Windows 7 的计算机的管理员。

所以一步一步,这就是我正在做的事情:

  1. 创建了一个指向我的 WCF 目录的新网站。该目录包含一个.svc、一个Web.config和一个bin目录,其中包含.dll和.pdb

  2. 尝试浏览该网站:

    Config Error - Cannot read configuration file due to insufficient permissions

    因此,我授予 IIS_IUSRS 帐户对该目录的访问权限。

  3. 另一个错误:

    You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

    因此,我确保用户权限向下传播——事实确实如此。同样的问题一次又一次地出现 - 所以是时候尝试一些不同的东西了。

  4. 我查看了 AppPools,他们正在使用 4.0 集成模式为我新创建的 AppPools。我将其更改为 DefaultAppPool

    You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

  5. 我打开 ASP.NET 模拟 - 通过我的用户而不是默认用户

    An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

    我将管道更改为经典 ASP.NET 池(这关闭了 ASP.NET 安全性)

    You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

  6. 转变为 ASP.NET 模拟

    You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.

--

请有人指导我,看看我出了什么问题? IIS 6 会立即让我进入,我正在做大量的配置只是为了加载 .svc

问候,

多米尼克

最佳答案

您不需要为 .svc 添加处理程序。当您安装 .NET 时就会发生这种情况。

问题不在于处理程序,而在于处理程序。这是安全。 ASPNET 模拟似乎是一种转移注意力的行为。这是针对 WCF 服务的,对吗?也许你找错了对象。

您说过您确保权利“向下传播” - 但请检查一下。例如,当您将文件从一个目录移动到另一个目录时,该文件可能携带的 ACL 不是您最初在文件夹中创建文件时所期望的“继承”ACL。

要检查的事项:

  • IIS_IUSRS 必须对物理目录具有读取+执行权限
  • bin 子目录需要具有适当的 IIS_IUSRS 权限。
  • bin 子目录中的 DLL 需要可读
  • 您可能希望为 vdir 启用“匿名”访问。
  • 您需要一个具有适当权限的 web.config 文件(但如果这是问题所在,您会收到不同的错误)
  • .svc 文件需要具有适当的权限

让 .svc 工作的一个步骤是加载一个简单的 .htm 页面。那样有用吗?一旦获得,然后加载一个简单的 .ASPX 页面,其中包含 bin 目录中的代码。一旦你得到了它,你应该能够让 .svc 运行,没问题。

此时您只需进行 WCF 特定的配置即可。

关于wcf - 使用 IIS7 和 WCF 时出现问题 - 甚至无法加载 .SVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512515/

相关文章:

wcf - 用于 session 的 Windows Phone 7 应用程序

.net - 如何在本地计算机上模拟 CORS?

c# - 适用于 Windows 应用商店应用的 ServicePoint.Expect100Continue

java - 是否有用于 apache tomcat web 应用程序的可更新配置文件?

configuration - 如何在加载时配置 AngularJS 应用程序?

windows-7 - IIS 7 管理器未打开但正在工作

ssl - IIS7 - 双向 SSL - 403.7

WCF 枚举问题 : cannot "or" the enum values

java - 在哪里存储 Web 应用程序的配置变量?

windows - aspnet_regiis -i 需要管理员权限