2010-05-14 2 views

ответ

1

Вы можете сделать это различными способами:

1) Использование PowerShell сценариев: http://blogs.iis.net/carlosag/archive/2008/02/10/using-microsoft-web -administration-in-windows-powershell.aspx

PS C:\ > $iis = new-object Microsoft.Web.Administration.ServerManager 

PS C: \> $ iis.Sites | foreach { $ . Применения | где {$ .ApplicationPoolName -eq 'DefaultAppPool'} | select-object Path, @ {Name = "AnonymousEnabled"; Выражение = { $ _. GetWebConfiguration(). GetSection ("system.webServer/безопасность/аутентификации/anonymousAuthentication"). GetAttributeValue ("включено") }}}

2) Вы можете установить Создать небольшой C# program like this:

using System; с использованием System.IO; с использованием System.Linq; с использованием System.Net; с использованием System.Threading; с использованием Microsoft.Web.Management.SEO.Crawler;

имен SEORunner { класс Program {

static void Main(string[] args) { 

     if (args.Length != 1) { 
      Console.WriteLine("Please specify the URL."); 
      return; 
     } 

     // Create a URI class 
     Uri startUrl = new Uri(args[0]); 

     // Run the analysis 
     CrawlerReport report = RunAnalysis(startUrl); 

     // Run a few queries... 
     LogSummary(report); 

     LogStatusCodeSummary(report); 

     LogBrokenLinks(report); 
    } 

    private static CrawlerReport RunAnalysis(Uri startUrl) { 
     CrawlerSettings settings = new CrawlerSettings(startUrl); 
     settings.ExternalLinkCriteria = ExternalLinkCriteria.SameFolderAndDeeper; 
     // Generate a unique name 
     settings.Name = startUrl.Host + " " + DateTime.Now.ToString("yy-MM-dd hh-mm-ss"); 

     // Use the same directory as the default used by the UI 
     string path = Path.Combine(
      Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), 
      "IIS SEO Reports"); 

     settings.DirectoryCache = Path.Combine(path, settings.Name); 

     // Create a new crawler and start running 
     WebCrawler crawler = new WebCrawler(settings); 
     crawler.Start(); 

     Console.WriteLine("Processed - Remaining - Download Size"); 
     while (crawler.IsRunning) { 
      Thread.Sleep(1000); 
      Console.WriteLine("{0,9:N0} - {1,9:N0} - {2,9:N2} MB", 
       crawler.Report.GetUrlCount(), 
       crawler.RemainingUrls, 
       crawler.BytesDownloaded/1048576.0f); 
     } 

     // Save the report 
     crawler.Report.Save(path); 

     Console.WriteLine("Crawling complete!!!"); 

     return crawler.Report; 
    } 

    private static void LogSummary(CrawlerReport report) { 
     Console.WriteLine(); 
     Console.WriteLine("----------------------------"); 
     Console.WriteLine(" Overview"); 
     Console.WriteLine("----------------------------"); 
     Console.WriteLine("Start URL: {0}", report.Settings.StartUrl); 
     Console.WriteLine("Start Time: {0}", report.Settings.StartTime); 
     Console.WriteLine("End Time: {0}", report.Settings.EndTime); 
     Console.WriteLine("URLs:  {0}", report.GetUrlCount()); 
     Console.WriteLine("Links:  {0}", report.Settings.LinkCount); 
     Console.WriteLine("Violations: {0}", report.Settings.ViolationCount); 
    } 

    private static void LogBrokenLinks(CrawlerReport report) { 
     Console.WriteLine(); 
     Console.WriteLine("----------------------------"); 
     Console.WriteLine(" Broken links"); 
     Console.WriteLine("----------------------------"); 
     foreach (var item in from url in report.GetUrls() 
          where url.StatusCode == HttpStatusCode.NotFound && 
            !url.IsExternal 
          orderby url.Url.AbsoluteUri ascending 
          select url) { 
      Console.WriteLine(item.Url.AbsoluteUri); 
     } 
    } 

    private static void LogStatusCodeSummary(CrawlerReport report) { 
     Console.WriteLine(); 
     Console.WriteLine("----------------------------"); 
     Console.WriteLine(" Status Code summary"); 
     Console.WriteLine("----------------------------"); 
     foreach (var item in from url in report.GetUrls() 
          group url by url.StatusCode into g 
          orderby g.Key 
          select g) { 
      Console.WriteLine("{0,20} - {1,5:N0}", item.Key, item.Count()); 
     } 
    } 
} 

}

А затем настроить, чтобы запустить его с помощью планировщика Windows

Мы используем один и тот же набор инструментов в http://www.seo-genie.com и может работать thouse тесты для вы на еженедельных babys, если вы можете это сделать или просто использовать код, который я наклеил выше + sheduler окон, или, может быть, это сделать так, используя Power Shell ...

0

Я разместил запись в блоге о том, как вы можете создать инструмент командной строки, который использует движок. Затем вы можете запланировать его запуск с помощью планировщика заданий в Windows.

http://blogs.msdn.com/b/carlosag/archive/2009/11/18/iis-seo-toolkit-start-new-analysis-automatically-through-code.aspx

Смежные вопросы