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

时间:2010-12-22 18:44:30

标签: wcf configuration iis-7 windows-7 impersonation

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

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

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

  2. 尝试浏览网站:

      

    配置错误 - 由于权限不足而无法读取配置文件

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

  3. 另一个错误:

      

    由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

    因此,我确保用户权限正在向下传播 - 它们是什么。同样的问题一次又一次出现 - 所以有时间尝试不同的事情。

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

      

    由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

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

      

    检测到的ASP.NET设置在集成管理管道模式下不适用。

    我将管道更改为Classic ASP.NET Pool(关闭了ASP.NET安全性)

      

    由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

  6. 转动ASP.NET模拟

      

    由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

  7. -

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

    此致

1 个答案:

答案 0 :(得分:3)

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

问题不在于处理程序;这是安全的。 ASPNET模仿似乎是一个红色的鲱鱼。这是一个WCF服务,对吧?也许你正在咆哮错误的树。

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

要检查的事项:

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

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

此时您只需要执行特定于WCF的配置。