One interesting use of this functionality is to “pre-process” dynamic ASP.NET requests – saving the output as static .htm files that you then prop onto a server. You can do this with MyHost.exe by “pipeing” the output automatically to a static file. For example:
MyHost.exe Test.aspx > Test.htm
-------------------------------
MyHost.cs
----------------------------------------------
using System;
using System.IO;
using System.Web;
using System.Web.Hosting;
public class MyExeHost : MarshalByRefObject {
public void ProcessRequest(String page) {
HttpRuntime.ProcessRequest(new SimpleWorkerRequest(page, null, Console.Out));
}
public static void Main(String[] arguments) {
MyExeHost host = (MyExeHost)ApplicationHost.CreateApplicationHost(typeof(MyExeHost),
"/foo", Directory.CurrentDirectory);
foreach (String page in arguments) {
host.ProcessRequest(page);
}
}
}
-------------------------------------------
Test.aspx
----------------------------------------
<html>
<body>
<h1> Hi DevLabs, 2 the time is now: <%=Now%> </h1>
</body>
</html>