Hi,
I am trying out with a simple URL redirection technique; if I am successful in this approach I will go ahead in implementing friendly RESTful urls for my application.
Problem I am facing in URL redirection using Http Handler:
I have created a VisualStudio2008 webservcie application.
Added 2 services, Service1.asmx and Service2.asmx.
Scenario 1:
Added an Http Handler (GenericHandler) class in the same hierarchy.
Added the below code in ProcessRequest method,
if (context.Request.PhysicalPath.IndexOf("Service1.asmx") > -1)
context.RewritePath("~/Service2.asmx");
Registerd the Handler in the httpHandler section of the webconfig, the bold one
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add verb="*" type="RESTWS.RESTHandler,RESTWS" path="*.asmx"/>
Now, I run my application by making Service1.asmx as the start page, the process hits my handler code, executes it with out any expection, but atlast I see a blank screen in the browser.
For crossing my code I also did the following,
Scenario 2:
Added a Global.asax file in the in the same hierarchy.
Added same code in Application_BeginRequest
if (Context.Request.PhysicalPath.IndexOf("Service1.asmx") > -1)
Context.RewritePath("~/Service2.asmx");
Commented out the Handler registry part what I added in the webconfig.
Again ran the application, the redirection from Service1.asmx to Service2.asmx happened successfully as expected.
Scenario 3:
When I have both the Global.asax and the httphandler enabled, again I get a blank page.
Scenario 4:
I felt that httpHandler doesnot suppport url redirection in the case of asmx(webservices), so I tried the same above procedures and scenarios with VisualStudio2008 Web application with 2 aspx pages (Default1.aspx and Default2.aspx) instead of Web service application. But the results were same as the above scenarios.
My Questions:
What is the mistake I am doing in my above scenarios?
How to perform urlredirection for web services using Http Handlers?
Thanks in Advance.