在集成模式下运行的IIS 7 Classic ASP应用程序

时间:2012-04-16 13:10:48

标签: asp.net iis-7 asp-classic sitecore sitecore6

我们在集成模式下在IIS 7上托管了一个ASP .Net应用程序。

我们在这个ASP .Net应用程序中有一些经典的ASP页面。当我试图从经典ASP页面发布帖子并尝试使用Request.Form("name")访问发布的数据时,它给出了我未指定的错误。请求对象在表单上被删除。

如果我将包含经典asp页面的文件夹更改为应用程序并将其应用程序池更改为使用经典模式的新应用程序池,则一切正常。

我可以在集成模式下在IIS 7上托管的ASP .Net应用程序中运行经典ASP页吗?

我们正在将Sitecore 6.5用于我们的Web应用程序。

2 个答案:

答案 0 :(得分:4)

是的,您可以使用集成管道在IIS7上运行ASP Classic。

您可能必须添加自定义HTTP处理程序。看看Kim Hansen的答案。她使用以下代码:

<add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Script" />

请查看this资源,了解有关在IIS7上运行ASP Classic的一些常规技巧。

要研究的其他一些事项:

  • 默认情况下禁用32位应用程序。某些COM对象需要启用此功能。可以按站点设置此选项
  • 查看web.config中的comPlus entry。对于Classic ASP,Esc尤其executeInMta在某些情况下可能很重要。

答案 1 :(得分:0)

我们遇到了类似的问题。我们以集成模式运行应用程序池,并具有一个自定义的http模块,该模块在.net端检查请求。 我们需要跳过.net代码中用于.asp扩展的那部分,然后一切又可以正常工作。 似乎每当.net第一次运行并访问请求对象时,它就以某种方式“锁定”在以后的模块中。