我在IIS6 web服务器上有一个完全空白的“.aspx”文件。该服务器已安装.net 3.5。
执行此文件时,会生成“路径中存在非法字符”的错误。此错误的完整堆栈跟踪可在此处找到。
通过IISReset可以暂时解决该问题。但是,一旦此服务器上的任何站点开始出现此问题,则该站点上的每个.aspx页面的每次访问都将导致相同的问题(包括我的完全空白示例文件)。
可能是什么原因导致了这个问题?如何解决? 编辑: 我已经添加了一份悬赏,希望在我们向微软提出支持案例之前能得到更多的帮助。我看到了亚当·休斯指出的知识库文章和博客文章,但这些信息本身并不能提供完整的解决方案。该博客是为那些拥有我所缺乏的知识和技能的人编写的,但显然我需要学习这些内容。我需要帮助理解这里发生的一些连接和推理。
看起来我应该对我们目前在一些ASP Classic网站上使用的ISAPI_Rewrite3持怀疑态度。你也这么认为吗?我想知道“修复”这个问题是否意味着替换ISAPI_Rewrite3? 编辑: 我已经从ISAPI过滤器列表中删除了ASP.NET条目。完整路径是
几个小时过去了,自从移除了ASP.NET过滤器后,问题就没有再出现了。不幸的是,我没有办法再现这个问题,除非等待它再次发生。我打算让它保持到明天晚上。如果问题再次出现,我将删除ISAPI_Rewrite3过滤器并再次尝试(值得庆幸的是,该过滤器的功能并不被我们的客户广泛使用)。无论如何,我会回来报告我的结果。
按要求检查了部分。此服务器上所有web.config文件中的所有条目都与此示例相同。
执行此文件时,会生成“路径中存在非法字符”的错误。此错误的完整堆栈跟踪可在此处找到。
通过IISReset可以暂时解决该问题。但是,一旦此服务器上的任何站点开始出现此问题,则该站点上的每个.aspx页面的每次访问都将导致相同的问题(包括我的完全空白示例文件)。
可能是什么原因导致了这个问题?如何解决? 编辑: 我已经添加了一份悬赏,希望在我们向微软提出支持案例之前能得到更多的帮助。我看到了亚当·休斯指出的知识库文章和博客文章,但这些信息本身并不能提供完整的解决方案。该博客是为那些拥有我所缺乏的知识和技能的人编写的,但显然我需要学习这些内容。我需要帮助理解这里发生的一些连接和推理。
我特别寻求关于以下任何问题的帮助,只要能让我获得一个正常运行的系统:
知识库文章的解决方法在第六步中让我选择一个CGI程序可执行文件。我应该选择什么?调试过程是否应该帮我发现选择哪个程序?
博客文章谈到了一种调试方法,但它假定我拥有我尚未掌握的知识。虽然我已经推断出我需要ADPlus,但我从未使用过这个工具,也没有必要在此之前检查内存转储。当作者说:
时间紧迫,失去的不多,我选择了实时调试的方法。由于问题此时很容易重现,因此我很快就得到了所需的内存转储。
我如何使用ADPlus(或任何其他工具)生成内存转储,并确保内存转储包含我需要调试的信息? "adplus -crash -iis" 是否能满足我的需求?
问题发生在生产服务器上。虽然如果必须的话我可以重新启动服务器,但我需要尽可能避免造成干扰。在活动服务器上生成内存转储是安全和合理的吗?服务器的其他功能是否会受到影响,如果是,我应该注意什么?
听起来我走在正确的道路上了吗?还有哪些途径可以解决这个问题?
编辑:Vinay,这里是您请求的有关ISAPI过滤器和通配符映射的信息:
(来源:photobooks.com)
(来源:photobooks.com)
.aspx文件相关联的文件的完整路径为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
。
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="..." />
<add verb="*" path="*_AppService.axd" validate="false" type="..."/>
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="..." />
</httpHandlers>
看起来我应该对我们目前在一些ASP Classic网站上使用的ISAPI_Rewrite3持怀疑态度。你也这么认为吗?我想知道“修复”这个问题是否意味着替换ISAPI_Rewrite3? 编辑: 我已经从ISAPI过滤器列表中删除了ASP.NET条目。完整路径是
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll
。删除后没有明显的不良影响。MSDN指出它用于帮助维护无cookie会话状态,这对于此服务器并不重要。几个小时过去了,自从移除了ASP.NET过滤器后,问题就没有再出现了。不幸的是,我没有办法再现这个问题,除非等待它再次发生。我打算让它保持到明天晚上。如果问题再次出现,我将删除ISAPI_Rewrite3过滤器并再次尝试(值得庆幸的是,该过滤器的功能并不被我们的客户广泛使用)。无论如何,我会回来报告我的结果。
按要求检查了部分。此服务器上所有web.config文件中的所有条目都与此示例相同。
<httpModules>
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule,
System.Web.Extensions,
Version=3.5.0.0,
Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
感谢您的帮助!