【问题标题】:What might cause a 503 Service Unavailable for reports area of an asp.net mvc3 application?什么可能导致 asp.net mvc3 应用程序的报告区域出现 503 服务不可用?
【发布时间】:2011-12-29 16:47:56
【问题描述】:

我们正在将 MVC3 应用程序从 IIS 6 切换到 7.5。我正在努力在 Windows 7 上设置我的本地开发环境。该应用程序在大多数情况下运行良好,但我刚刚发现我拥有的许多不同 MVC 区域中的一个不起作用。

当我尝试在此区域下执行操作时,我收到 503 Service Unavailable 错误。这不会发生在我的应用程序的其他任何地方。

  • 整个网站只有一个应用程序池。
  • MVC 3
  • .Net 4.0
  • 64 位
  • 失败的请求跟踪看不到这些请求。
  • Windows 应用程序或系统日志中没有任何相关内容。
  • 该区域在 Visual Studio 2010 cassini 下运行良好,当我在本地 iis 7.5(非 express)下运行时出现问题
  • 应用程序池没有崩溃或停止
  • 我的 ELMAH 日志中没有任何内容
  • 每个人都可以完全控制文件系统安全性中的整个树
  • 网址是http://localhost/reports

我完全被难住了。我找不到任何证据表明 IIS 甚至完全收到了请求。除了我列出的日志文件之外,还有其他日志文件吗?

[更新] 有什么方法可以查看 http.sys 的 URL 保留吗?我发现了一些关于在 /Reports url 上调用 dibs 的 SQL 报告服务的讨论。

【问题讨论】:

  • 您是否有任何其他处理该 URL 的 IIS 模块或应用程序?
  • 除非在默认的 IIS 7 安装中有可以处理该 url 的东西。
  • 如果你把它改成 /reports2 你还会遇到同样的问题吗...?

标签: asp.net-mvc iis-7 iis-7.5


【解决方案1】:

如前所述,它与 SQL 报告服务有关 您可以按照以下方法解决此问题:

登录到托管 SSRS 的服务器。

转到开始 > 程序 > SQL Server 2008 R2 > 配置工具 > Reporting Services 配置管理器

连接到有问题的服务器(通常是您的本地服务器)

转到 Web 服务 URL 部分

将 TCP 端口更改为端口 80 以外的开放端口(81 恰好在我的服务器上工作)并点击应用

转到报告管理器 URL 部分

点击高级

单击 TCP 端口为 80 的条目,然后单击“编辑”按钮。

将 TCP 端口条目更改为您之前在 Web 服务 URL 部分中更改的相同内容,然后单击确定。

再次点击确定。

【讨论】:

    【解决方案2】:

    另一种解决方案是,我的http://ApplicationURL/报告

    遇到了同样的问题

    是的,SSRS 就是问题所在。

    一个更好的解决方案是

    1. OpenReporting Services 配置管理器。
    2. 通常连接到本地服务 COMPUTERNAME\MSSQLSERVER
    3. 转到“报表管理器 URL”选项
    4. 用其他名称而不是 Reports 修改您的虚拟目录。

    请记住,通过此更改,您为 SSRS 报告的名称将使用您定义的名称。

    卡洛斯

    【讨论】:

    • 我知道这不是我的 mvc 代码。哈哈!这是一个太奇怪的错误,即使它很常见。谢谢,这对我来说绝对是正确的答案。不知道为什么它没有被投票。其他人肯定会遇到这种情况。你知道......微软声称所有端口 80 主机上的 /Reports/ 路径......荒谬。只有 ms 可以逃脱这样的事情。
    【解决方案3】:

    检查帐户/IIS -> 应用程序池 -> 高级设置 -> 进程模型 -> 运行池的身份。我修改了密码,并没有出现登录密码无效,而是 assemlby 加载失败,进而导致应用程序池被关闭,并且给用户“503 服务不可用”。

    【讨论】:

      【解决方案4】:

      我想通了。这是由于 SQL 报告服务在 http.sys 中保留了 http://+:80/Reports url。

      我实际上并没有安装报告服务,但它显然仍然保留了 url。

      我用以下命令修复了它:

      netsh http delete urlacl url=http://+:80/Reports
      

      【讨论】:

      • 谢谢!这个问题很奇怪,但又来救援了。
      • 已排序,不确定我自己是否能解决这个问题!
      • 谢谢。这帮助我解决了困扰我好几天的问题
      【解决方案5】:

      您是否在该领域中使用了其他任何地方都没有的任何 ODBC 或其他组件?在 64 位模式下运行应用程序池并且底层调用引用 32 位“某些东西”时,我遇到了这个错误(或类似的错误,不记得了)。您可以尝试在应用程序池设置中启用 32 位应用程序,看看它是否会影响结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 2018-07-08
        • 2012-11-21
        • 1970-01-01
        • 2018-02-25
        相关资源
        最近更新 更多