Printable Version Processing A .aspx File From Console Window, Without Using IIS By Jamsheer E B In this article you will learn how to execute an ASPX file from console. Requirements Platform : WIN NT 4.0 or Windows 2000 , .NET Framework Beta 2
Steps 1.Copy this code to a new file and save it as ConsoleHost.cs
// project created on 2/5/2002 at 4:43 PM
// compile csc ConsoleHost.cs /r:System.Web.dll
System ;
System.IO;
System.Web;
System.Web.Hosting;
ConsoleHost : MarshalByRefObject // if you forget to extend this class
// You'll get a SerializationException...!!!
{
public HandleRequest( String fileName )
{
Console.WriteLine ( "The output from the {0} file" , fileName ) ;
// Create a Worker to execute the aspx file
HttpWorkerRequest worker = new SimpleWorkerRequest( fileName, "" , Console.Out ) ;
// execute the page
HttpRuntime.ProcessRequest( worker ) ;
}
}
class Host
{
public Main(String[] args)
{
ConsoleHost myHost = ( ConsoleHost )ApplicationHost.CreateApplicationHost
( typeof( ConsoleHost ) , "/test" ,
Directory.GetCurrentDirectory( ) );
( String fileName args )
{
myHost.HandleRequest( fileName ) ;
}
}
}
|
2.Write a small ASPX file or copy this code and save it as test.aspx
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Console Host</title>
</head>
<script language="C#" runat="server"> void Page_Load ( Object src , EventArgs args )
{
message.Text = "Hello World...!" ;
} </script>
<body>
<asp:Label id="message" runat="server"/>
</body> </html> |
3.Compile ConsoleHost.cs by typing csc ConsoleHost.cs /r:System.Web.dll
4.Execute the test.aspx by typing ConsoleHost test.aspx , Now you can see the output from the test.aspx file as a static html in the Console window. Nope....I got an error...!!!!
Unhandled Exception: System.IO.FileNotFoundException: File or assembly name ConsoleHost, or one of its dependencies, was not found. File name: "ConsoleHost" You have to create a bin directory as subdirectory to your current directory and move a copy of ConsoleHost.exe to it. Now you have two copies of ConsoleHost.exe, one in the current directory (in my case f:/temp/test/) and another in /bin (in my case f:/temp/test/bin) directory. Now type again ConsoleHost test.aspx, you should see an output like this,
Now you are ready to create your own web server which can process ASP.NET files....!!!! |