2011-03-23 40 views
3

将ASP.NET webforms应用程序部署到IIS 6.0 64位服务器。某些关联的DLL仅在3​​2位中可用,因此我在遵循these指令的情况下启用了32位应用程序。起初我无法查看ASPX页面,但我忘记了允许ASP.NET Web服务扩展。排序!IIS提供ASPX,但不提供ASMX

最近的测试显示,在请求ASMX Web服务文件时收到404。从IIS日志的状态代码为:

人有什么想法?我预计这会像所有的404一样愚蠢。

更新1

如果不知道这是相关的,但请求PNG文件时收到相同的错误代码。没有问题从同一文件夹中提供JPG或GIF ... 什么!!!值得注意的是,如果我将图像的扩展名更改为JPG,则可以请求它。

更新2

请参见下面的回答。

+0

工作是ASMX Web服务使用相同的.NET框架版本的ASPX页面建? – 2011-03-23 11:44:27

+0

@Simen S - ASMX和ASPX在同一个项目中。 – youwhut 2011-03-23 13:48:20

+0

该.png问题可能是一个注册表问题 - 确保你有一个关键的.png下具有“内容类型”值的HKLM \ Software \ Classes。 (它可能是“image/png”,但这并不重要。)也就是说,我认为这不应该打破.asmx,我无法想象Server 2003在注册表中没有.png内容类型。 – Rup 2011-03-23 13:56:51

回答

7

好的发现了问题。

C:\ WINDOWS \ system32 \ inetsrv \ urlscan \ UrlScan.ini没有在AllowExtensions列表中指定的PNG和ASMX扩展名。

在我们的IIS服务器构建一个不错的怪癖!

+0

好东西!今天学了点儿新东西。谢谢! – Nikhil 2011-03-24 09:23:43

2

您是否确定.asmx文件类型,处理程序映射到asp.net dll并且“检查文件是否存在”在IIS中未勾选?

+0

+1处理程序检查,但为什么他需要解开'检查文件是否存在'?这通常只适用于MVC或基于路由的应用程序 - 通常ASMX文件确实存在。如果你想纠正处理程序,那么最好运行'aspnet_regiis' – Rup 2011-03-23 11:53:48

+0

我已经检查了映射,并且ASPX和ASMX都指向了同一个aspnet_isapi.dll。 – youwhut 2011-03-23 13:47:51

+0

实际上.asmx文件通常会被编译到二进制文件中,而实际上并不存在于磁盘上。我唯一能想到的其他事情是web.config中的某些内容与IIS处理asmx文件的方式冲突。尝试将asmx文件的测试处理程序放在适当的位置,只要请求asmx文件,就可以简单地写入事件日志。这将告诉你,如果IIS正确路由呼叫开始与否。 – Nikhil 2011-03-23 14:46:54

0

我已经改变了连接池为“经典”,从integtrated,并开始对我