什么可能导致 503 服务对于 ASP.NET MVC3 应用程序的报告区域不可用?
我们正在将 MVC3 应用程序从 IIS 6 切换到 7.5。我正在努力在 Windows 7 上设置本地开发环境。该应用程序在大多数情况下都运行良好,但我刚刚发现我拥有的许多不同的 MVC 区域中的一个无法工作。
当我尝试在此区域下执行操作时,收到 503 服务不可用错误。在我的应用程序中的其他任何地方都不会发生这种情况。
- 整个网站只有一个应用程序池。
- MVC 3
- .Net 4.0
- 64 位
- 失败请求跟踪看不到这些请求。
- Windows 应用程序或系统日志中没有任何相关内容。
- 该区域在 Visual Studio 2010 cassini 下工作正常,当我在本地 iis 7.5(非 Express)下运行它时会出现问题
- 应用程序池没有崩溃或以其他方式停止
- 我的 ELMAH 日志中没有任何内容
- 每个人都可以完全控制文件系统安全中的整个
- 树url 是 http://localhost/reports
我完全被难住了。我根本找不到 IIS 收到请求的任何证据。除了我列出的日志文件之外,还有其他日志文件吗?
[更新] 有什么办法可以查看http.sys URL保留吗?我发现了一些关于 SQL 报告服务在 /Reports url 上调用 dibs 的讨论。
We're switching our MVC3 application from IIS 6 to 7.5. I'm working on setting up my local development environment on Windows 7. The app works fine for the most part, but I just discovered that ONE out of the many different MVC Areas I have doesn't work.
When I try hit an action under this area, I get a 503 Service Unavailable error back. This does not happen anywhere else in my application.
- There is only one application pool for the whole website.
- MVC 3
- .Net 4.0
- 64 bit
- Failed request tracing doesn't see these requests.
- There is nothing relevant in the Windows application or system logs.
- The area works fine under visual studio 2010 cassini, problem happens when I run it under local iis 7.5 (not express)
- App pool isn't crashing or otherwise stopped
- There's nothing in my ELMAH log
- Everyone full control on entire tree in the filesystem security
- The url is http://localhost/reports
I'm totally stumped. I can't find any evidence that IIS is even getting the request at all. Is there some other log file beside the ones I listed?
[Update]
Is there any way to view the http.sys URL reservations? I have found some talk about SQL Reporting services calling dibs on /Reports url.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我想通了。这是由于 SQL 报告服务在 http.sys 中保留了 http://+:80/Reports url。
我实际上没有安装报告服务,但它显然仍然保留了该网址。
我用以下命令修复了它:
I figured it out. It was due to SQL Reporting services having reserved the http://+:80/Reports url in http.sys.
I didn't actually have reporting services installed, but it apparently still reserved the url.
I fixed it with the following command:
检查帐户/IIS->应用程序池->高级设置->流程模型->您的池运行时使用的身份。我更改了密码,并没有收到登录无效密码的信息,而是出现了加载失败的情况,这反过来又导致应用程序池被关闭,并向用户显示“503 Service Unavailable”。
Check the account / IIS -> Application Pool -> Advanced Settings -> Process Model -> Identity under which your pool is running. I had my password changed, and didn't get a log on invalid password, but rather assemlby load failure, which in turn caused the app pool to be shut off, and the "503 Service Unavailable" was given to the user.
另一个解决方案是,我的 http://ApplicationURL/Reports 也有同样的问题
,是的SSRS 就是问题所在。
对于此问题,一种更好的解决方案是
请记住,通过此更改,您报告的 SSRS 将以您定义的名称命名。
卡洛斯
Another solution is, I had the same problem with my http://ApplicationURL/Reports
And yes the SSRS was the issue.
A better solution for this one is
Just remember with this change you reports for SSRS will be in the name that you defined.
Carlos
您是否在该领域使用了其他地方没有使用过的任何 ODBC 或其他组件?在 64 位模式下运行应用程序池并且底层调用引用 32 位“某物”时,我遇到过此错误(或类似的错误,一时想不起来)。您可以尝试在应用程序池设置中启用32位应用程序,看看是否会影响结果。
Are you using any ODBC or other components in this area that you are not anywhere else? I have experienced this error (or one similar, can't remember off the top of my head) when running the app pool in 64bit mode and the underlying calls are referencing at 32bit 'something'. You could try enabling 32bit applications in the application pool settings to see if it affects the outcome.
如前所述,它与 SQL 报告服务有关
您可以按照以下方法解决此问题:
登录到托管 SSRS 的服务器。
转到开始>节目> SQL Server 2008 R2 >配置工具> Reporting Services 配置管理器
连接到有问题的服务器(通常是您的本地服务器)
转到 Web 服务 URL 部分
将 TCP 端口更改为端口 80 以外的开放端口(81 恰好在我的服务器上工作),然后单击应用
转至报告管理器 URL 部分
单击高级
单击 TCP 端口为 80 的条目,然后单击编辑按钮。
将 TCP 端口条目更改为您之前在 Web 服务 URL 部分中更改的内容,然后单击“确定”。
再次单击“确定”。
As mentioned before it is related to SQL Reporting services
You can follow this approach to fix this problem:
Log on to the server that hosts SSRS.
Go to Start > Programs > SQL Server 2008 R2 > Configuration Tools > Reporting Services Configuration Manager
Connect to the server in question (usually your local server)
Go to the Web Service URL section
Change the TCP port to an open port other than port 80 (81 happened to work on my server) and hit Apply
Go to the Report Manager URL section
Click Advanced
Click the entry with a TCP port of 80 and then click the Edit button.
Change the TCP Port entry to the same thing you changed it to in the Web Service URL section previously and Click OK.
Click OK again.