【问题标题】:Strange communication error in Win2008Win2008出现奇怪的通讯错误
【发布时间】:2009-02-02 14:16:05
【问题描述】:

我有一个托管主要 WCF 服务的 Windows 服务。该服务的客户端都托管在 IIS 7 中,第一个是 IIS 托管的 WCF 服务,第二个是标准的 Asp.Net 应用程序。两个 IIS 托管客户端都通过命名管道与 Windows 服务进行通信。

IIS 托管的 WCF 服务可以与 windows 托管的 WCF 服务完美通信,但 Asp.Net 服务失败并出现以下错误: 无法从管道 URI 中获取管道名称:访问被拒绝。

我的第一反应是这是某个地方的权限问题,但我不知道在哪里。其次,为什么 IIS 托管的 WCF 服务能够正常通信,但 Asp.Net 应用程序却失败了?

【问题讨论】:

  • 补充一点:这个系统的父网站是一个Helm网站,一个我不太熟悉的应用。当我将 AppPool 使用的用户从 NetworkService 切换到 LocalSystem 时,导致父网站 web.config 出现错误,我认为我走错了路。

标签: asp.net wcf iis-7


【解决方案1】:

好的,我解决了,或者更确切地说,我弄清楚了权限问题在哪里。

事实证明,匿名身份验证设置使用的是我们的客户端(物理人,而不是我们的 WCF 客户端)创建的一些奇怪用户,而不是 NetworkService 用户(应用程序池使用的身份)。

但这几乎引发了另一个问题:为什么甚至新创建的站点都默认使用此 IUSR 而不是系统默认设置?无论如何,我只是希望它被 google 收录,因为几乎没有与之相关的文章。

【讨论】:

    【解决方案2】:

    检查 WCF 和 ASP.NET 服务所在的应用程序池的标识。

    也许 WCF 服务的 AppPool 的身份与其他 AppPool 的权限不同?

    【讨论】:

    • 我的想法是一样的,但是他们都使用同一个应用程序池。我什至尝试将用户从 NetworkService 切换到 LocalSystem,再切换到 LocalUser。没有运气。
    【解决方案3】:

    另外,您可能需要注意,IUSR 是匿名访问者的默认 IIS7 帐户。有关默认帐户的说明,请参阅 Understanding the Built-In User and Group Accounts in IIS 7.0

    希望这有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多