2012-06-11 54 views
3

我已将我们公司的Web应用程序从Windows Server 2003迁移到Windows Server 2008 R2。这些都是.Net 2.0经典网络应用程序。他们似乎都做工精细,访问任何资源时与路径开始/报告/ ...除外Windows Server 2008 R2 + IIS 7.5 - 无法找到资源

在一个应用程序在磁盘上的物理路径是C:\网站\ APP_NAME \ web服务\报表...在此报告文件夹PDF文件是动态生成的并写入磁盘。他们可以通过这样的URL访问:

http://domain_name/Reports/xxxx.pdf 

其中/ Reports是映射到上述物理路径的虚拟目录。这工作正常2003服务器& IIS6但在IIS7.5 & 2008 R2我不断收到以下错误:

该资源找不到。

说明: HTTP 404.您正在查找的资源(或其某个依赖项)可能已被删除,名称已更改或暂时不可用。请检查以下网址并确保它拼写正确。

请求的URL: /Reports/xxxx.pdf

我有一个动态生成的报告,并直接流他们到客户端浏览器保存到本地磁盘,而不是被写入到磁盘上的另一个Web应用程序在服务器上。类似于上述示例,生成该报告的页面是根据路径发现如下:

/Reports/Viewer.aspx

在这种情况下,存在没有使用虚拟目录。在浏览器中引用的网址是:

http://another_domain_name//Reports/Viewer.aspx 

我再次得到了同样的错误信息如上... HTTP 404 - 资源无法找到。

我已经尝试了所有在阳光下的权限设置,试图让它工作,但无济于事。我已经使用内置帐户,创建了具有非常小权限和完全管理权限的新帐户。我也玩过新的AppPool身份,但没有成功。似乎没有关系我在目录上专门设置了什么权限,或者为应用程序池配置的帐户或每个网站本身的基本设置。

虽然我发现了一件事,但是,虽然浏览器正在收到HTTP 404错误,但没有在每个网站的IIS日志文件中出现此请求的记录!这真让我感到困惑,因为我一定会在所请求的资源上看到404日志条目失败。

还有其他需要注意的是,我正在该机器上运行SQL Server 2008 Enterprise,并安装并启用了Reporting Services。这是一个延伸,但是我的网站上的/ Reports路径与机器上运行的其他东西有冲突吗?我为服务器上运行的每个单独的域和网站使用不同的绑定/主机头。

+0

是否启用在IIS失败请求日志记录?再看看,你说的是没有任何请求触及该服务器的痕迹?如果您“停止”该服务器上的网站,您是否不再获得404,而只是发生连接错误? – CodingGorilla

回答

2

检查Reports folder conflict。请记住,Google比SO快。

+0

AFAIK这只是发生,当你默认的网站上,在OP说这些都是在一个单独的网站,所以我不认为这也适用。 – CodingGorilla

+0

见http://technet.microsoft.com/en-us/library/bb630449.aspx的“http:// +:80 /报告\t接收发送到任何IP地址或主机名是有效的,任何请求电脑只要在URL中包含“报告”虚拟目录名即可。“ –

+0

感谢Tomas,对钱有所了解。现在都在工作。 StackOverflow是新的谷歌。 :o) –

1

IIS给出的404错误不仅仅是文件未找到 - 所以它不会给攻击者太多。查看事件日志(应用程序),并尝试从服务器本身访问它。

的另一件事是检查你的IIS应用程序池的配置是否正确 - 尤其是用正确的管道模式和.NET Framework的版本。

0

在命令提示符下,键入:

netsh http show urlacl

查看是否有与/reports/ --maybe一个从SQL Server Reporting Services的遗留安装任何绑定?

V/R BK

相关问题