我们可以在不使用response.redirect或server.transfer的情况下重定向到httpurlmodule中的全新页面

时间:2011-02-28 21:43:51

标签: c# asp.net

我尝试了一些使用http处理程序的工作,发现我们无法执行.asp文件并采用了httpmodule路由。

我在虚拟目录上有一个httpnet模块,这是一个dotnet应用程序。一旦请求来到dotnet http模块,我想重定向到asp文件,这是基于.net中某些逻辑的根文件夹。

我不想在这里使用response.redirect,这是主要的事情

根/ dotnetapplication。

dotnet应用程序具有以下代码。

 application.Context.RewritePath("http://localwww.test.com/main.asp", false);

这会抛出以下异常

'

http://locwww.test.com/main.asp' is not a valid virtual path.

[HttpException (0x80004005): 'http://locwww.allposters.com/main.asp' is not a valid virtual path.]
   System.Web.VirtualPath.Create(String virtualPath, VirtualPathOptions options) +8855691
   System.Web.HttpContext.RewritePath(String path, Boolean rebaseClientPath) +116
   ADC.Web.Code.ApcUrlRewriteModule.UrlRewriteModule_BeginRequest(Object sender, EventArgs e) 
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

.ASP传统上不是.NET应用程序页面,除非您重新配置了.ASP扩展名。

我的猜测是你没有启用.ASP,服务器认为“main.asp”是一个虚拟目录而不是.ASP页面:

Enabling ASP Pages in IIS 6.0

答案 1 :(得分:0)

这意味着您只能重写到另一个虚拟路径,即/somefolder/somefile.asp或aspx等等。

如果要从其他服务器执行asp页面并仅提供它生成的内容,则需要“代理”该页面。这可以是一个.aspx页面,它为asp.net提供远程请求或代理模块。我不知道,但我猜有一个。