Запуск скриптов без помощи IIS

Запуск скриптов без помощи IIS

В этой статье мы обсудим одну из новых возможностей ASP.NET. Она должна обязательно войти в набор техник, которые вы можете использовать при разработке приложений.

ASP.NET Framework поддерживает хостинг оболочку, которая позволяет выполнять ASP.NET приложения не пользуясь IIS, например, из вашего собственного сервера, графического или консольного приложения. Эта оболочка входит в пространство имен System.Web.Hosting.

Напишем простейшую aspx страницу и консольное C# приложение, показывающее использование предлагаемой технологии.

sample.aspx<html>

  <body>

    Сейчас <%=Now%>

  </body>

</html>

 

 

sample.csusing System;

using System.IO;

using System.Web;

using System.Web.Hosting;

 

public class ASPX2HTML : MarshalByRefObject {

  public void ProcessRequest(String p_aspx) {

    HttpRuntime.ProcessRequest(new SimpleWorkerRequest(p_aspx, null, Console.Out));

  }

  public static void Main(String[] arguments) {

    ASPX2HTML host = (ASPX2HTML)ApplicationHost.CreateApplicationHost(typeof(ASPX2HTML), "/foo",

                     Directory.CurrentDirectory);

    foreach (String aspx in arguments) {

      Console.Out.WriteLine("file:"+aspx);

      host.ProcessRequest(aspx);

    }

  }

}

 

 

Теперь выполните компиляцию. (Файлы должны находиться в одном каталоге, оттуда же должны выполняться команды.)csc sample.cs /r:System.Web.dll

И запустите приложение, перенаправив вывод в sample.htmsample.exe sample.aspx>sample.htm

Теперь результат выполнения этого пробного скрипта находится в файле sample.htm

Да, и не пугайтесь, если вы будете использовать эту технологию на windows 95,98, у вас может не получиться.

Как мы уже писали, ASP.NET предназначена для использования на серверных платформах.

Варианты использования

Расскажем об одном из способов применения данных техник-предположим, что вам нужно ежедневно генерировать отчеты из базы данных, при этом информацию за предыдущие дни не меняется, а обращений к этой странице в дневное время очень много. Вы можете использовать windows scripting host и scheduler, вместе с написанным выше приложением, чтобы создавать статические страницы отчетов. Причем их затем можно отображать любым веб-сервером, даже не поддерживающем ASP.NET, или они могут передаваться на другую машину по защищенным каналам.