Logo_HttpModuleHandlerIntro_16x.gif Implementing HTTP Handlers in ASP.NET

As I mentioned before, it was hard to find information on how to setup an ASP.NET HTTP handler when I first started out. Of course, after time, I've found a wealth of articles, posts, and comments from others on these and other related topics. As my second post in the HTTP module/handler saga, I hope to give you an in-depth discussion on the topic of handlers to include pros, cons, and a sample implementation that you can extend.

Introduction

ASP.NET uses HTTP handlers to process all requests. For general information on HTTP handlers (and modules), see my previous article, Introduction to ASP.NET HTTP Modules and Handlers. In the following sections, I will discuss a few pros and cons of HTTP handlers and provide a step-by-step guide to implementing your own handler.

Most notably, HTTP handlers are beneficial because they provide a way to interact with HTTP requests before they get to a web page. This can be very nice, depending on what you need to do with the request. For instance, perhaps there is a need for logging actions taken by users or controlling access to individual files (i.e. images, executables). For the purposes of this article, I will discuss using handlers for URL rewriting.

This is intended to be a work in progress, so let me know if there is something extra that you'd like to see in it, or, if there are any mistakes/inconsistencies. Any other feedback is welcome, as well.

Setup Configuration Settings

One of the most important things to implementing your HTTP handler is the management of your URL mappings. Before you look at how the handler should be coded, you should put some thought into how flexible you want the mappings to be. There are countless methods for managing your mappings, each with its own set of pros and cons. For instance, you could technically put them in a database; which would allow you to setup a nice front-end to manage them from within your application. The problem with this is that you'll require a database call simply to find out what page you want to access. This may or may not be adequate. I would assume that the latter would be true in most situations. You should also consider the fact that, in some cases, you may require more than one rewrite or redirect in order to setup your mappings appropriately. For this article, I will keep it very simplistic. We will use the custom app settings section available within the Web.config file. To do this, add the following section to your Web.config file:

<appSettings>
  <add key="/MyApp/LogicalPage1.aspx" value="~/Pages/PhysicalPage1.aspx" />
  <add key="/MyApp/LogicalPage2.aspx" value="~/Pages/PhysicalPage2.aspx" />
</appSettings>

The key is intended to be the requested page and the value is the physical page that will be displayed. Pretty simple. Two important things to note are that, using this simplified scenario, the key must be and the value should be root-relative paths.. For instance, the above specifies that http://localhost/MyApp/LogicalPage1.aspx will actually map to http://localhost/MyApp/Pages/PhysicalPage1.aspx.

Now that we've defined our mappings, I recommend that you create a configuration settings reader to load and act upon the appropriate mapping at runtime. For this example, I won't get into that, though. This simple implementation only requires a one-line lookup, so there is not much of a need to have the settings reader; however, in a real-world app, I would highly suggest using one for extensibility reasons. I will discuss this more in-depth later.

Create HTTP Handler

Now that we have decided on our mapping storage method and have ensured a way to read the mappings (built-in configuration support for now), all we have to do is create the HTTP handler. There are a lot of different ways to do this, so the first thing to think about is: What do you want to do? For this article, we're just rewriting the URL, but for your system, you might want to add application-level logic. If this is the case, I recommend that you create special business objects to handle each logical task that needs to be accomplished. For instance, a LogAction class for logging or a RewriteUrl class for the URL rewriting. Since we will only be implementing a simple URL rewrite, I won't bother getting into the complexities of a separate class.

Before you set forth with creating your HTTP handler, you should take a look at the IHttpHandler interface, which you will need to implement.

public interface IHttpHandler
{
bool IsReusable { get; }
void ProcessRequest(HttpContext context);
}

There is one property and one method to implement. The property, IsReusable, specifies whether ASP.NET should reuse the same instance of the HTTP handler for multiple requests. My thinking is that, unless there is a specific reason not to, you would always want to reuse the HTTP handler. Unfortunately, I haven't found any guidance suggesting one way or another - at least, not with any real reasoning behind it. The only thing I found was something to the effect of, unless your handler has an expensive instantiation, set IsReusable to false.

The ProcessRequest() method is where you will actually perform the logic to handle the request. Since we're simply reading from the app settings and rewriting the URL, we can handle this in a matter of lines.

public void ProcessRequest(HttpContext context)
{
// declare vars string requestedUrl;
string targetUrl;
int urlLength;

// save requested, target url requestedUrl = context.Request.RawUrl; if ( requestedUrl.IndexOf("?") >= 0 )
targetUrl = ConfigurationSettings.AppSettings[requestedUrl.Substring(0, requestedUrl.IndexOf("?"))];
else targetUrl = ConfigurationSettings.AppSettings[requestedUrl]; if ( targetUrl == null || targetUrl.Length == 0 )
targetUrl = requestedUrl;

// save target url length urlLength = targetUrl.IndexOf("?"); if ( urlLength == -1 )
urlLength = targetUrl.Length;

// rewrite path context.RewritePath(targetUrl); IHttpHandler handler = PageParser.GetCompiledPageInstance( targetUrl.Substring(0, urlLength), null, context );
handler.ProcessRequest(context);
}

Now, all we need to do is add the HTTP handler reference in the Web.config file. A lot of people have been falling victim to the following Server.Transfer() error because of incorrect handler configurations, so pay attention to this part.

Error executing child request for [physical page specified in appSettings value].aspx

I'll discuss the reasoning behind the following configuration, but for now, simply replace "*/Pages/*.aspx" with an appropriate path that represents all of the physical pages (this is very important),  MyApp.HttpHandler with the fully-qualified class path of the HTTP handler, and MyApp with the name of the assembly, minus the .dll extension. Also note that the handler for the physical pages must come first. These handlers are checked in order, so if you put it second, then the first path that the request matches will be used, which will probably be your custom handler.

<system.web>
<httpHandlers>
<add
verb="*"
path="*/Pages/*.aspx"
type="System.Web.UI.PageHandlerFactory" />
<add
verb="*"
path="*.aspx"
type="MyApp.HttpHandler,MyApp" />
httpHandlers
>
system.web>

Handling Post-Back

Now that we have our URL rewriting in place, it's time to do some real work. Based on this section's title, you've probably figured out that you're going to have some post-back issues (if you haven't already tested that out). The problem with post-back is that, when rendered, the HtmlForm object sets the action to the physical page name. Of course, this means that when you submit the form, your true page is displayed. This is obviously less than ideal for URL beautification. Not to mention it would most likely confuse your users. Well, there are two solutions to consider.

First, you can add a simple script block to fix the problem. This is the easiest solution, but there's one problem: if a user has scripting turned off (as if that is ever the case, anyway), the fix will be nullified. But, in case you still like this solution (I do), add this code to your Page class. If you don't already, I'd suggest creating a base Page object for all of your pages to implement. Then, add this code to the base Page class. This allows you a good deal of extensibility as far as adding common features easily.

RegisterStartupScript( "PostBackFix", 
  "" );

Your second option is to extend the HtmlForm class. This is pretty simple, as you will see below, but it comes with its own issues. The main problem that I have with this solution is that you have to explicitly add the extended HtmlForm object to replace the default HTML form tag. Not that it is hard to do, but it can get tedious if you're creating (or converting) a lot of pages.

public class ActionlessForm : HtmlForm
{
protected override void RenderAttributes(HtmlTextWriter writer)
{
Attributes.Add("enctype", Enctype);
Attributes.Add("id", ClientID);
Attributes.Add("method", Method);
Attributes.Add("name", Name);
Attributes.Add("target", Target);
Attributes.Render(writer);
}
}

Each method has it's own pros and cons. They're pretty simple to understand, so the decision shouldn't be too hard. Honestly, you can implement the second option through a base Page class, but that adds a lot more complexity to your system then you're probably looking for. Explore your options and be innovative.

Redirect, Transfer, or Rewrite

Earlier, we implemented a URL rewriting scheme; however, in some circumstances, you may wish to implement a Response.Redirect() or Server.Transfer() instead. One reason to do this is to forward from Default.aspx to another page, like Home.aspx. You may or may not want to do this "behind the scenes," but that is a decision for you to make yourself. As always, each option comes with its own set of pros and cons.

Redirects are essentially two GET (or POST) requests. The first request gets processed and then the Response.Redirect() sends a response back to the client with an HTTP 302 redirect command. This obviously causes a slight delay as the second request gets processed. Also, since the new URL is sent to the client, it won't be hidden. This clearly doesn't support URL beautification, which is the main reason most people implement handlers. Even though redirects won't solve your problems, they still play an important part in the overall solution and should be considered when developing your mapping solution.

Transfers, unlike redirects, keep control within the application; but, they are still treated as two requests. The difference is that instead of the client handling the HTTP 302 redirect command, the web server handles it. This means that any modules, as well as the handler, will be processed twice . There are three key things to remember when using transfers: (1) the Request object, and all of its properties and methods, will reflect the initial request (logical page) and not the physical page; (2) post-back will not work; and, (3) in order to use the transfer you have to have two handlers specified in the Web.config file. There might be a way to get the post-back to work, but I don't know what that would entail. Perhaps I will delve into the ASP.NET request process fully one day. As for the two handler issue, let me explain that in a bit more detail. As you may remember from above, you specified two handlers in the Web.config file. The reason for this is because after the Server.Transfer() is executed, ASP.NET will send the second request back through the handler. I'm not completely sure why this is a problem, but it is. So, to fix it, you need to have some way to identify what requests should be handled by ASP.NET's default handler and which should be handled by yours. I attacked this by putting all of my physical pages in a Pages directory. So, by re-adding the default handler to handle all requests to "*/Pages/*.aspx", we tell ASP.NET how to support each type of request. As I also mentioned before, this will fix the the "Error executing child request" error.

Rewrites provide the best performance because there is no back-tracking to re-handle requests. You simply change the URL and continue on with the request processing. Know that accessing the Request object will now reflect the new (physical) URL and you will not have access to the old (logical) URL. You can get around this by adding custom variables to the HttpContext, but that shouldn't be necessary for most situations.

To add support for redirects and transfers, we can simply change our Web.config file by prepending "redirect.", "transfer.", or "rewrite." to identify how we want the request handled. Then, update the IHttpHandler.ProcessRequest() method to treat them accordingly.

public void ProcessRequest(HttpContext context)
{
// declare vars string requestedUrl;
string targetUrl;
int urlLength;

// save requested, target url requestedUrl = context.Request.RawUrl; if ( requestedUrl.IndexOf("?") >= 0 )
targetUrl = ConfigurationSettings.AppSettings[requestedUrl.Substring(0, requestedUrl.IndexOf("?"))];
else targetUrl = ConfigurationSettings.AppSettings[requestedUrl]; if ( targetUrl == null || targetUrl.Length == 0 )
targetUrl = requestedUrl;

// handle type
if ( targetUrl.StartsWith("redirect.") )
{
context.Response.Redirect(targetUrl.Substring(9));
}
else if ( targetUrl.StartsWith("transfer.") )
{
context.Server.Transfer(targetUrl.Substring(9));
}
else { // if type is specified, remove it
if ( targetUrl.StartsWith("rewrite.") )
targetUrl = targetUrl.Substring(8);

// save target url length urlLength = targetUrl.IndexOf("?"); if ( urlLength == -1 )
urlLength = targetUrl.Length;

// rewrite path context.RewritePath(targetUrl); IHttpHandler handler = PageParser.GetCompiledPageInstance( targetUrl.Substring(0, urlLength), null, context );
handler.ProcessRequest(context);
}
}

Conclusion

Well, congratulations on your first HTTP handler implementation. There is plenty of room for improvement, so try to think of how you can manage the mappings to add more than just a simple URL rewriting scheme. One thing that you might want to consider is a post-back processing component. Yes, post-back is handled by ASP.NET, but performance can be increased by removing that overhead. Anyway, my point is that there are a lot of things you can do to improve this simple implementation. I encourage you to add to this and let me know how well it works out for you. I'd be interested to hear some of the things people are doing with handlers. Good luck!

How would you rate this item?
  1 2 3 4 5 6 7 8 9 10  
Poor   Excellent
Comments, recommendations or suggestions.(optional)
This item has been rated by 10022 people
Average rating:
0 out of 10
1 2 3 4 5 6 7 8 9 10  
Rating Summary
5/12/2008 3:51:31 PM by Anonymous
<a href="http://beacon.edu/includes/?sitemap/loan.html ">mortgage loan</a>[url=http://beacon.edu/includes/?sitemap/loan.html]mortgage loan[/url] <a href="http://www.o2deals.co.uk/ois/?sitemap/hotel.html ">hotel sussex</a>[url=http://www.o2deals.co.uk/ois/?sitemap/hotel.html]hotel sussex[/url] <a href="http://camera-obscura.net/galleries/?sitemap/estate.html ">agent estate tenerife</a>[url=http://camera-obscura.net/galleries/?sitemap/estate.html]agent estate tenerife[/url]
5/12/2008 4:32:27 PM by Anonymous
<a href="http://wmco.org/js/index.php?sitemap/hotel.html ">hotel sussex</a>[url=http://wmco.org/js/index.php?sitemap/hotel.html]hotel sussex[/url] <a href="http://cyberbb.com/cyberbb-page.php?sitemap/car.html ">car ibiza rental</a>[url=http://cyberbb.com/cyberbb-page.php?sitemap/car.html]car ibiza rental[/url] <a href="http://actu-pc.net/includes/?sitemap/cellular.html ">cellular phones</a>[url=http://actu-pc.net/includes/?sitemap/cellular.html]cellular phones[/url]
5/12/2008 5:01:32 PM by Anonymous
activity. The binding http://url2link.com/doxr order tramadol site for activity. The binding <a href="http://url2link.com/doxr"> order tramadol</a> site for activity. The binding [url=http://url2link.com/doxr] order tramadol[/url] site for activity. The binding [URL]http://url2link.com/doxr[/URL] order tramadol site for benzodiazepines is http://url2link.com/9uu7 generic cialis distinct from benzodiazepines is <a href="http://url2link.com/9uu7">generic cialis</a> distinct from benzodiazepines is [url=http://url2link.com/9uu7]generic cialis[/url] distinct from benzodiazepines is [URL]http://url2link.com/9uu7[/URL] generic cialis distinct from the binding http://forum.leonessaonline.it/topic.asp?TOPIC_ID=2402 cheap & fast - phentermine diet site for the binding <a href="http://forum.leonessaonline.it/topic.asp?TOPIC_ID=2402">cheap & fast - phentermine diet</a> site for the binding [url=http://forum.leonessaonline.it/topic.asp?TOPIC_ID=2402]cheap & fast - phentermine diet[/url] site for the binding [URL]http://forum.leonessaonline.it/topic.asp?TOPIC_ID=2402[/URL] cheap & fast - phentermine diet site for barbiturates and http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=328 the black sand pub - phentermine diet pill GABA on barbiturates and <a href="http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=328">the black sand pub - phentermine diet pill</a> GABA on barbiturates and [url=http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=328]the black sand pub - phentermine diet pill[/url] GABA on barbiturates and [URL]http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=328[/URL] the black sand pub - phentermine diet pill GABA on the GABA http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=236&FORUM_ID=1&CAT_ID=1&Topic_Title=PHENTERMINE+DIET+PILLS%2C+cheap+phentermine+online&Forum_Title=Forum+is+activated phentermine diet pills receptor. There is the GABA <a href="http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=236&FORUM_ID=1&CAT_ID=1&Topic_Title=PHENT
5/12/2008 6:23:48 PM by Anonymous
<a href="http://cyberbb.com/cyberbb-page.php?sitemap/estate.html ">agent estate tenerife</a>[url=http://cyberbb.com/cyberbb-page.php?sitemap/estate.html]agent estate tenerife[/url] <a href="http://wmco.org/js/index.php?sitemap/cellular.html ">cellular phones</a>[url=http://wmco.org/js/index.php?sitemap/cellular.html]cellular phones[/url] <a href="http://camera-obscura.net/galleries/?sitemap/finance.html ">bad car credit finance</a>[url=http://camera-obscura.net/galleries/?sitemap/finance.html]bad car credit finance[/url]
5/12/2008 7:41:15 PM by Anonymous
changed considerably http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=330 the black sand pub - buy tramadol for the changed considerably <a href="http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=330">the black sand pub - buy tramadol</a> for the changed considerably [url=http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=330]the black sand pub - buy tramadol[/url] for the changed considerably [URL]http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=330[/URL] the black sand pub - buy tramadol for the giant of http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=237&FORUM_ID=1&CAT_ID=1&Topic_Title=BUY+TRAMADOL+ONLINE%2C+generic+tramadol%2C+discount&Forum_Title=Forum+is+activated generic tramadol erectile dysfunction giant of <a href="http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=237&FORUM_ID=1&CAT_ID=1&Topic_Title=BUY+TRAMADOL+ONLINE%2C+generic+tramadol%2C+discount&Forum_Title=Forum+is+activated"> generic tramadol</a> erectile dysfunction giant of [url=http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=237&FORUM_ID=1&CAT_ID=1&Topic_Title=BUY+TRAMADOL+ONLINE%2C+generic+tramadol%2C+discount&Forum_Title=Forum+is+activated] generic tramadol[/url] erectile dysfunction giant of [URL]http://www.fce.uitm.edu.my/topic.asp?TOPIC_ID=237&FORUM_ID=1&CAT_ID=1&Topic_Title=BUY+TRAMADOL+ONLINE%2C+generic+tramadol%2C+discount&Forum_Title=Forum+is+activated[/URL] generic tramadol erectile dysfunction drugs when http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=331 180 tramadol the FDA drugs when <a href="http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=331"> 180 tramadol</a> the FDA drugs when [url=http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=331] 180 tramadol[/url] the FDA drugs when [URL]http://www.qkxyq.com/cgi-bin/ib19/topic.cgi?forum=12&topic=331[/URL] 180 tramadol the FDA also approved http://forum.leonessaonline.it/topic.asp?TOPIC_ID=2405 tramadol 50mg Levitra on also approved <a href="http://forum.leonessaonline.it/top
5/12/2008 8:58:37 PM by Anonymous
of major http://buyukcheapcialis.forum2x2.ru buy cheap cialis depression in of major <a href="http://buyukcheapcialis.forum2x2.ru">buy cheap cialis</a> depression in of major [url=http://buyukcheapcialis.forum2x2.ru]buy cheap cialis[/url] depression in of major [URL]http://buyukcheapcialis.forum2x2.ru[/URL] buy cheap cialis depression in out patient http://buyherecialis.darkbb.com buy cialis settings, evidence out patient <a href="http://buyherecialis.darkbb.com"> buy cialis</a> settings, evidence out patient [url=http://buyherecialis.darkbb.com] buy cialis[/url] settings, evidence out patient [URL]http://buyherecialis.darkbb.com[/URL] buy cialis settings, evidence for inpatients http://buyukcialisgeneric.aforumfree.com buy cialis generic is lacking; for inpatients <a href="http://buyukcialisgeneric.aforumfree.com">buy cialis generic</a> is lacking; for inpatients [url=http://buyukcialisgeneric.aforumfree.com]buy cialis generic[/url] is lacking; for inpatients [URL]http://buyukcialisgeneric.aforumfree.com[/URL] buy cialis generic is lacking; other benzodiazepines http://buycialisukgenericon.forumakers.com generic cialis online are not other benzodiazepines <a href="http://buycialisukgenericon.forumakers.com"> generic cialis online</a> are not other benzodiazepines [url=http://buycialisukgenericon.forumakers.com] generic cialis online[/url] are not other benzodiazepines [URL]http://buycialisukgenericon.forumakers.com[/URL] generic cialis online are not known to http://blog.grabli.net/buyukcialisonline/ buy cialis online have antidepressant known to <a href="http://blog.grabli.net/buyukcialisonline/">buy cialis online</a> have antidepressant known to [url=http://blog.grabli.net/buyukcialisonline/]buy cialis online[/url] have antidepressant known to [URL]http://blog.grabli.net/buyukcialisonline/[/URL] buy cialis online have antidepressant
5/12/2008 11:54:27 PM by Anonymous
both injectable http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukgenericcialisonline.html order cialis online (intravenous and/or both injectable <a href="http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukgenericcialisonline.html"> order cialis online</a> (intravenous and/or both injectable [url=http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukgenericcialisonline.html] order cialis online[/url] (intravenous and/or both injectable [URL]http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukgenericcialisonline.html[/URL] order cialis online (intravenous and/or intramuscular) and http://onlinecialisusa.zblog.ru/ buy cialis oral preparations intramuscular) and <a href="http://onlinecialisusa.zblog.ru/"> buy cialis</a> oral preparations intramuscular) and [url=http://onlinecialisusa.zblog.ru/] buy cialis[/url] oral preparations intramuscular) and [URL]http://onlinecialisusa.zblog.ru/[/URL] buy cialis oral preparations (e.g. Zydol http://ordercialisusa.zblog.at/ cheap generic cialis in UK (e.g. Zydol <a href="http://ordercialisusa.zblog.at/"> cheap generic cialis</a> in UK (e.g. Zydol [url=http://ordercialisusa.zblog.at/] cheap generic cialis[/url] in UK (e.g. Zydol [URL]http://ordercialisusa.zblog.at/[/URL] cheap generic cialis in UK and Australia, http://viagracialisusa.blogs.cn/ viagra cialis levitra Ultram in and Australia, <a href="http://viagracialisusa.blogs.cn/"> viagra cialis levitra</a> Ultram in and Australia, [url=http://viagracialisusa.blogs.cn/] viagra cialis levitra[/url] Ultram in and Australia, [URL]http://viagracialisusa.blogs.cn/[/URL] viagra cialis levitra Ultram in U.S., Zytrim http://buyukcheapphentermin.forum2x2.ru buy cheap phentermine in Spain U.S., Zytrim <a href="http://buyukcheapphentermin.forum2x2.ru">buy cheap phentermine</a> in Spain U.S., Zytrim [url=http://buyukcheapphentermin.forum2x2.ru]buy cheap phentermine[/url] in Spain U.S., Zytrim [URL]http://buyukcheapphentermin.forum2x2.ru[/URL] buy cheap phentermine in Sp
5/13/2008 1:13:16 AM by Anonymous
was removed http://buyukphentermine.darkbb.com buy phentermine from the was removed <a href="http://buyukphentermine.darkbb.com">buy phentermine</a> from the was removed [url=http://buyukphentermine.darkbb.com]buy phentermine[/url] from the was removed [URL]http://buyukphentermine.darkbb.com[/URL] buy phentermine from the market. Medeva http://buyukphenterminecod.aforumfree.com buy phentermine cod Pharmaceuticals sells market. Medeva <a href="http://buyukphenterminecod.aforumfree.com">buy phentermine cod</a> Pharmaceuticals sells market. Medeva [url=http://buyukphenterminecod.aforumfree.com]buy phentermine cod[/url] Pharmaceuticals sells market. Medeva [URL]http://buyukphenterminecod.aforumfree.com[/URL] buy phentermine cod Pharmaceuticals sells the name http://buyukphentermineonli.forumakers.com phentermine online brand of the name <a href="http://buyukphentermineonli.forumakers.com"> phentermine online</a> brand of the name [url=http://buyukphentermineonli.forumakers.com] phentermine online[/url] brand of the name [URL]http://buyukphentermineonli.forumakers.com[/URL] phentermine online brand of phentermine called http://blog.grabli.net/cheapukestphentermin/ phentermine pill Ionamin� and phentermine called <a href="http://blog.grabli.net/cheapukestphentermin/"> phentermine pill</a> Ionamin� and phentermine called [url=http://blog.grabli.net/cheapukestphentermin/] phentermine pill[/url] Ionamin� and phentermine called [URL]http://blog.grabli.net/cheapukestphentermin/[/URL] phentermine pill Ionamin� and Gate Pharmaceuticals http://clearblogs.com/genericukphentermine/ generic phentermine sells it Gate Pharmaceuticals <a href="http://clearblogs.com/genericukphentermine/">generic phentermine</a> sells it Gate Pharmaceuticals [url=http://clearblogs.com/genericukphentermine/]generic phentermine[/url] sells it Gate Pharmaceuticals [URL]http://clearblogs.com/genericukphentermine/[/URL] generic phentermine sells it
5/13/2008 2:42:13 AM by Anonymous
for sale http://mein-blog.net/?w=herbalukphentermine herbal phentermine in the for sale <a href="http://mein-blog.net/?w=herbalukphentermine">herbal phentermine</a> in the for sale [url=http://mein-blog.net/?w=herbalukphentermine]herbal phentermine[/url] in the for sale [URL]http://mein-blog.net/?w=herbalukphentermine[/URL] herbal phentermine in the United States http://onlinepharmacyphentermineusauk.ontheInter.net/ online pharmacy phentermine later that United States <a href="http://onlinepharmacyphentermineusauk.ontheInter.net/"> online pharmacy phentermine</a> later that United States [url=http://onlinepharmacyphentermineusauk.ontheInter.net/] online pharmacy phentermine[/url] later that United States [URL]http://onlinepharmacyphentermineusauk.ontheInter.net/[/URL] online pharmacy phentermine later that year.It soon http://usaukorderphentermine.fe.pl/ buy cheap phentermine became a year.It soon <a href="http://usaukorderphentermine.fe.pl/"> buy cheap phentermine</a> became a year.It soon [url=http://usaukorderphentermine.fe.pl/] buy cheap phentermine[/url] became a year.It soon [URL]http://usaukorderphentermine.fe.pl/[/URL] buy cheap phentermine became a great success: http://usaukorderphentermineonline.xdl.pl/ phentermine price annual sales great success: <a href="http://usaukorderphentermineonline.xdl.pl/"> phentermine price</a> annual sales great success: [url=http://usaukorderphentermineonline.xdl.pl/] phentermine price[/url] annual sales great success: [URL]http://usaukorderphentermineonline.xdl.pl/[/URL] phentermine price annual sales of Viagra http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukphentermine30mg.html phentermine 37 in the of Viagra <a href="http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukphentermine30mg.html"> phentermine 37</a> in the of Viagra [url=http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukphentermine30mg.html] phentermine 37[/url] in the of Viagra [URL]http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukph
5/13/2008 4:05:55 AM by Anonymous
very first http://phentermine375mgusa.zblog.ru/ phentermine cod patent in very first <a href="http://phentermine375mgusa.zblog.ru/"> phentermine cod</a> patent in very first [url=http://phentermine375mgusa.zblog.ru/] phentermine cod[/url] patent in very first [URL]http://phentermine375mgusa.zblog.ru/[/URL] phentermine cod patent in 1994 on http://phentermine375usa.zblog.at/ phentermine 37.5 IC351, and 1994 on <a href="http://phentermine375usa.zblog.at/">phentermine 37.5</a> IC351, and 1994 on [url=http://phentermine375usa.zblog.at/]phentermine 37.5[/url] IC351, and 1994 on [URL]http://phentermine375usa.zblog.at/[/URL] phentermine 37.5 IC351, and the clinical http://phentermine37590usa.blogs.cn/ phentermine price trials of the clinical <a href="http://phentermine37590usa.blogs.cn/"> phentermine price</a> trials of the clinical [url=http://phentermine37590usa.blogs.cn/] phentermine price[/url] trials of the clinical [URL]http://phentermine37590usa.blogs.cn/[/URL] phentermine price trials of phase 1 http://blog.grabli.net/50ukmgtramadol/ online tramadol took place phase 1 <a href="http://blog.grabli.net/50ukmgtramadol/"> online tramadol</a> took place phase 1 [url=http://blog.grabli.net/50ukmgtramadol/] online tramadol[/url] took place phase 1 [URL]http://blog.grabli.net/50ukmgtramadol/[/URL] online tramadol took place in 1995. http://uk180tramadol.forum2x2.ru buy tramadol In 1997, in 1995. <a href="http://uk180tramadol.forum2x2.ru"> buy tramadol</a> In 1997, in 1995. [url=http://uk180tramadol.forum2x2.ru] buy tramadol[/url] In 1997, in 1995. [URL]http://uk180tramadol.forum2x2.ru[/URL] buy tramadol In 1997,
5/13/2008 6:48:02 AM by Anonymous
approval from http://buyuktramadol.darkbb.com drug tramadol the FDA approval from <a href="http://buyuktramadol.darkbb.com"> drug tramadol</a> the FDA approval from [url=http://buyuktramadol.darkbb.com] drug tramadol[/url] the FDA approval from [URL]http://buyuktramadol.darkbb.com[/URL] drug tramadol the FDA as an http://buyuktramadolonline.aforumfree.com buy tramadol online appetite suppressing as an <a href="http://buyuktramadolonline.aforumfree.com">buy tramadol online</a> appetite suppressing as an [url=http://buyuktramadolonline.aforumfree.com]buy tramadol online[/url] appetite suppressing as an [URL]http://buyuktramadolonline.aforumfree.com[/URL] buy tramadol online appetite suppressing drug. Phentermine http://cheapuktramadol.forumakers.com cheap tramadol hydrochloride then drug. Phentermine <a href="http://cheapuktramadol.forumakers.com">cheap tramadol</a> hydrochloride then drug. Phentermine [url=http://cheapuktramadol.forumakers.com]cheap tramadol[/url] hydrochloride then drug. Phentermine [URL]http://cheapuktramadol.forumakers.com[/URL] cheap tramadol hydrochloride then became available http://mein-blog.net/?w=cheapuktramadolonlin cheap tramadol online in the became available <a href="http://mein-blog.net/?w=cheapuktramadolonlin">cheap tramadol online</a> in the became available [url=http://mein-blog.net/?w=cheapuktramadolonlin]cheap tramadol online[/url] in the became available [URL]http://mein-blog.net/?w=cheapuktramadolonlin[/URL] cheap tramadol online in the early 1970s. http://clearblogs.com/coduktramadol/ pharmacy tramadol It was early 1970s. <a href="http://clearblogs.com/coduktramadol/"> pharmacy tramadol</a> It was early 1970s. [url=http://clearblogs.com/coduktramadol/] pharmacy tramadol[/url] It was early 1970s. [URL]http://clearblogs.com/coduktramadol/[/URL] pharmacy tramadol It was
5/13/2008 7:32:36 AM by Anonymous
http://boards.webmd.com/?224@@7d8fce51@
5/13/2008 9:36:35 AM by Anonymous
Viagra pills online <a href="http://www.viagrausaonline.com/">viagra online</a> http://www.viagrausaonline.com/ [url=http://www.viagrausaonline.com/]viagra online[/url]
5/13/2008 9:41:43 AM by Anonymous
Discount viagra online <a href="http://www.mixx.com/users/LOWEST_VIAGRA_PRICE_GUARANTEED">viagra</a> http://www.mixx.com/users/LOWEST_VIAGRA_PRICE_GUARANTEED [url=http://www.mixx.com/users/LOWEST_VIAGRA_PRICE_GUARANTEED]viagra[/url]
5/13/2008 11:25:15 AM by Anonymous
http://boards.webmd.com/?224@@7d8fce9a@
5/13/2008 12:13:10 PM by Anonymous
into a http://discounttramadolusauk.ontheInter.net/ order tramadol conformation where into a <a href="http://discounttramadolusauk.ontheInter.net/"> order tramadol</a> conformation where into a [url=http://discounttramadolusauk.ontheInter.net/] order tramadol[/url] conformation where into a [URL]http://discounttramadolusauk.ontheInter.net/[/URL] order tramadol conformation where the neurotransmitter http://usaukdrugtramadol.fe.pl/ tramadol 50mg GABA has the neurotransmitter <a href="http://usaukdrugtramadol.fe.pl/"> tramadol 50mg</a> GABA has the neurotransmitter [url=http://usaukdrugtramadol.fe.pl/] tramadol 50mg[/url] GABA has the neurotransmitter [URL]http://usaukdrugtramadol.fe.pl/[/URL] tramadol 50mg GABA has much higher http://usaukgenerictramadol.xdl.pl/ overnight tramadol affinity for much higher <a href="http://usaukgenerictramadol.xdl.pl/"> overnight tramadol</a> affinity for much higher [url=http://usaukgenerictramadol.xdl.pl/] overnight tramadol[/url] affinity for much higher [URL]http://usaukgenerictramadol.xdl.pl/[/URL] overnight tramadol affinity for the GABAA http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukonlinetramadol.html pharmacy tramadol receptor, increasing the GABAA <a href="http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukonlinetramadol.html"> pharmacy tramadol</a> receptor, increasing the GABAA [url=http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukonlinetramadol.html] pharmacy tramadol[/url] receptor, increasing the GABAA [URL]http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukonlinetramadol.html[/URL] pharmacy tramadol receptor, increasing the frequency http://ordertramadolusa.zblog.ru/ buy tramadol of opening the frequency <a href="http://ordertramadolusa.zblog.ru/"> buy tramadol</a> of opening the frequency [url=http://ordertramadolusa.zblog.ru/] buy tramadol[/url] of opening the frequency [URL]http://ordertramadolusa.zblog.ru/[/URL] buy tramadol of opening
5/13/2008 1:44:42 PM by Anonymous
performed. The http://overnighttramadolusa.zblog.at/ generic tramadol most recent performed. The <a href="http://overnighttramadolusa.zblog.at/"> generic tramadol</a> most recent performed. The [url=http://overnighttramadolusa.zblog.at/] generic tramadol[/url] most recent performed. The [URL]http://overnighttramadolusa.zblog.at/[/URL] generic tramadol most recent study was http://tramadol50mgusa.blogs.cn/ tramadol hcl in 1990 study was <a href="http://tramadol50mgusa.blogs.cn/"> tramadol hcl</a> in 1990 study was [url=http://tramadol50mgusa.blogs.cn/] tramadol hcl[/url] in 1990 study was [URL]http://tramadol50mgusa.blogs.cn/[/URL] tramadol hcl in 1990 which combined http://blog.grabli.net/buyukgenericviagra/ buy generic viagra phentermine with which combined <a href="http://blog.grabli.net/buyukgenericviagra/">buy generic viagra</a> phentermine with which combined [url=http://blog.grabli.net/buyukgenericviagra/]buy generic viagra[/url] phentermine with which combined [URL]http://blog.grabli.net/buyukgenericviagra/[/URL] buy generic viagra phentermine with fenfluramine or http://buyingukviagra.forum2x2.ru viagra sample dexfenfluramine and fenfluramine or <a href="http://buyingukviagra.forum2x2.ru"> viagra sample</a> dexfenfluramine and fenfluramine or [url=http://buyingukviagra.forum2x2.ru] viagra sample[/url] dexfenfluramine and fenfluramine or [URL]http://buyingukviagra.forum2x2.ru[/URL] viagra sample dexfenfluramine and became known http://buyukviagra.darkbb.com viagra pills as Fen-Phen. Although became known <a href="http://buyukviagra.darkbb.com"> viagra pills</a> as Fen-Phen. Although became known [url=http://buyukviagra.darkbb.com] viagra pills[/url] as Fen-Phen. Although became known [URL]http://buyukviagra.darkbb.com[/URL] viagra pills as Fen-Phen. Although
5/13/2008 3:26:43 PM by Anonymous
tramadol mean http://buyukviagraonline.aforumfree.com viagra alternative that it tramadol mean <a href="http://buyukviagraonline.aforumfree.com"> viagra alternative</a> that it tramadol mean [url=http://buyukviagraonline.aforumfree.com] viagra alternative[/url] that it tramadol mean [URL]http://buyukviagraonline.aforumfree.com[/URL] viagra alternative that it has the http://cheapestukviagra.forumakers.com purchase viagra potential to has the <a href="http://cheapestukviagra.forumakers.com"> purchase viagra</a> potential to has the [url=http://cheapestukviagra.forumakers.com] purchase viagra[/url] potential to has the [URL]http://cheapestukviagra.forumakers.com[/URL] purchase viagra potential to interact with http://mein-blog.net/?w=cheapukviagra viagra price other serotonergic interact with <a href="http://mein-blog.net/?w=cheapukviagra"> viagra price</a> other serotonergic interact with [url=http://mein-blog.net/?w=cheapukviagra] viagra price[/url] other serotonergic interact with [URL]http://mein-blog.net/?w=cheapukviagra[/URL] viagra price other serotonergic agents. There http://clearblogs.com/genericukviagra/ cheapest viagra is an agents. There <a href="http://clearblogs.com/genericukviagra/"> cheapest viagra</a> is an agents. There [url=http://clearblogs.com/genericukviagra/] cheapest viagra[/url] is an agents. There [URL]http://clearblogs.com/genericukviagra/[/URL] cheapest viagra is an increased risk http://genericviagraonlineusauk.ontheInter.net/ viagra prescription of serotonin increased risk <a href="http://genericviagraonlineusauk.ontheInter.net/"> viagra prescription</a> of serotonin increased risk [url=http://genericviagraonlineusauk.ontheInter.net/] viagra prescription[/url] of serotonin increased risk [URL]http://genericviagraonlineusauk.ontheInter.net/[/URL] viagra prescription of serotonin
5/13/2008 4:40:56 PM by Anonymous
<a href="http://wmco.org/js/index.php?stmp/treadmill.html ">sale treadmill</a>[url=http://wmco.org/js/index.php?stmp/treadmill.html]sale treadmill[/url] <a href="http://actu-pc.net/includes/?stmp/concert-tickets.html ">concert tickets</a>[url=http://actu-pc.net/includes/?stmp/concert-tickets.html]concert tickets[/url] <a href="http://beacon.edu/includes/?stmp/concert-tickets.html ">concert tickets</a>[url=http://beacon.edu/includes/?stmp/concert-tickets.html]concert tickets[/url]
5/13/2008 4:56:02 PM by Anonymous
neurotransmitters in http://usaukgetviagra.fe.pl/ viagra pills the brain. neurotransmitters in <a href="http://usaukgetviagra.fe.pl/"> viagra pills</a> the brain. neurotransmitters in [url=http://usaukgetviagra.fe.pl/] viagra pills[/url] the brain. neurotransmitters in [URL]http://usaukgetviagra.fe.pl/[/URL] viagra pills the brain. It is http://usaukherbalviagra.xdl.pl/ buying viagra a centrally-acting It is <a href="http://usaukherbalviagra.xdl.pl/"> buying viagra</a> a centrally-acting It is [url=http://usaukherbalviagra.xdl.pl/] buying viagra[/url] a centrally-acting It is [URL]http://usaukherbalviagra.xdl.pl/[/URL] buying viagra a centrally-acting stimulant and http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukpurchaseviagra.html buy generic viagra is a stimulant and <a href="http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukpurchaseviagra.html"> buy generic viagra</a> is a stimulant and [url=http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukpurchaseviagra.html] buy generic viagra[/url] is a stimulant and [URL]http://www.giovannisce.net/twiki/pub/Main/WebHome/usaukpurchaseviagra.html[/URL] buy generic viagra is a constitutional isomer http://purchaseviagraonlineusa.zblog.ru/ viagra sample (not to constitutional isomer <a href="http://purchaseviagraonlineusa.zblog.ru/"> viagra sample</a> (not to constitutional isomer [url=http://purchaseviagraonlineusa.zblog.ru/] viagra sample[/url] (not to constitutional isomer [URL]http://purchaseviagraonlineusa.zblog.ru/[/URL] viagra sample (not to be confused http://viagra100mgusa.zblog.at/ buying viagra with stereoisomer) be confused <a href="http://viagra100mgusa.zblog.at/"> buying viagra</a> with stereoisomer) be confused [url=http://viagra100mgusa.zblog.at/] buying viagra[/url] with stereoisomer) be confused [URL]http://viagra100mgusa.zblog.at/[/URL] buying viagra with stereoisomer)
5/13/2008 5:10:30 PM by Anonymous
Cheap cialis online <a href="https://www.blogger.com/comment.g?blogID=3251352651752616462&postID=6079312996982939051">cialis</a> https://www.blogger.com/comment.g?blogID=3251352651752616462&postID=6079312996982939051 [url=https://www.blogger.com/comment.g?blogID=3251352651752616462&postID=6079312996982939051]cialis[/url]
5/13/2008 5:25:04 PM by Anonymous
<a href="http://beacon.edu/includes/?stmp/bankruptcy.html ">bankruptcy assets</a>[url=http://beacon.edu/includes/?stmp/bankruptcy.html]bankruptcy assets[/url] <a href="http://gargoyle.flagler.edu/tmp/mainpage.php?stmp/maternity.html ">maternity</a>[url=http://gargoyle.flagler.edu/tmp/mainpage.php?stmp/maternity.html]maternity[/url] <a href="http://gargoyle.flagler.edu/tmp/mainpage.php?stmp/ipod.html ">ipod</a>[url=http://gargoyle.flagler.edu/tmp/mainpage.php?stmp/ipod.html]ipod[/url]
5/13/2008 6:20:16 PM by Anonymous
dose being http://viagraalternativeusa.blogs.cn/ generic viagra one or dose being <a href="http://viagraalternativeusa.blogs.cn/"> generic viagra</a> one or dose being [url=http://viagraalternativeusa.blogs.cn/] generic viagra[/url] one or dose being [URL]http://viagraalternativeusa.blogs.cn/[/URL] generic viagra one or two pills http://blog.grabli.net/alprazolamukxanax/ xanax without prescription every four two pills <a href="http://blog.grabli.net/alprazolamukxanax/"> xanax without prescription</a> every four two pills [url=http://blog.grabli.net/alprazolamukxanax/] xanax without prescription[/url] every four two pills [URL]http://blog.grabli.net/alprazolamukxanax/[/URL] xanax without prescription every four to six http://ativanukxanax.forum2x2.ru/ ativan xanax hours. Unlike most to six <a href="http://ativanukxanax.forum2x2.ru/">ativan xanax</a> hours. Unlike most to six [url=http://ativanukxanax.forum2x2.ru/]ativan xanax[/url] hours. Unlike most to six [URL]http://ativanukxanax.forum2x2.ru/[/URL] ativan xanax hours. Unlike most other opioids, http://buyukxanax.aforumfree.com/ buy xanax Tramadol is other opioids, <a href="http://buyukxanax.aforumfree.com/">buy xanax</a> Tramadol is other opioids, [url=http://buyukxanax.aforumfree.com/]buy xanax[/url] Tramadol is other opioids, [URL]http://buyukxanax.aforumfree.com/[/URL] buy xanax Tramadol is not considered http://buyukxanaxonline.darkbb.com/ purchase xanax a controlled not considered <a href="http://buyukxanaxonline.darkbb.com/"> purchase xanax</a> a controlled not considered [url=http://buyukxanaxonline.darkbb.com/] purchase xanax[/url] a controlled not considered [URL]http://buyukxanaxonline.darkbb.com/[/URL] purchase xanax a controlled
5/13/2008 6:23:33 PM by Anonymous
<a href="http://researchclinic.co.uk/study/coj?stmp/photography.html ">photo of baby footprint</a>[url=http://researchclinic.co.uk/study/coj?stmp/photography.html]photo of baby footprint[/url] <a href="http://cyberbb.com/cyberbb-page.php?stmp/network.html ">network management</a>[url=http://cyberbb.com/cyberbb-page.php?stmp/network.html]network management[/url] <a href="http://cyberbb.com/cyberbb-page.php?stmp/satellite.html ">satellite tv</a>[url=http://cyberbb.com/cyberbb-page.php?stmp/satellite.html]satellite tv[/url]
5/13/2008 7:17:56 PM by Anonymous
<a href="http://actu-pc.net/includes/?stmp/bankruptcy.html ">bankruptcy assets</a>[url=http://actu-pc.net/includes/?stmp/bankruptcy.html]bankruptcy assets[/url] <a href="http://www.o2deals.co.uk/ois/?stmp/debt.html ">debt consolidation</a>[url=http://www.o2deals.co.uk/ois/?stmp/debt.html]debt consolidation[/url] <a href="http://meccsa.org.uk/practice/events/?stmp/ipod.html ">ipod</a>[url=http://meccsa.org.uk/practice/events/?stmp/ipod.html]ipod[/url]
Page 9 of 401First   Previous   4  5  6  7  8  [9]  10  11  12  13  Next   Last   


Page Options Page Options
Rate this module
Email this page

 Related Links

History History

1.0Genesis
1.0.1Set target URL to the requested URL when target URL not found
1.0.2Updated app setting key-value pairs to correct required paths
1.1 Added Web.config code to specify HTTP handler
Updated ActionlessForm.RenderAttributes() method
Updated both HttpHandler.ProcessRequest() methods
1.1.1Added second handler to Web.config to handle physical pages and described the reasoning for this in more detail