2011-06-21 13 views
8

Web sitelerine ekli yerel IIS + sanal dizinlerinde çalışan web sitelerini listeleyen bu küçük web uygulamasını yazdım.IIS 7 - Sanal dizin yeniden yönlendirme yolu?

Ben yönlendirmek için kurulmuştur, sanal dizinin HTTP Yeniden Yönlendirme URL'sini almak başardı aşağıdaki satırı kullanma: IIS 6 oldukça güzel çalışıyor

_directoryEntry.Properties["HttpRedirect"].Value.toString() 

- ama değeri ne zaman boş Uygulamamı bir IIS 7'de deniyorum - ve uygulama havuzunu da klasik boru hattına geçirmeyi denedim - IIS 7'de ne değişti? Ve neden?

cevap

1

Neler değişti ?: IIS7, .NET'in hiyerarşik yapılandırma sistemine benzeyen tamamen yeni bir yapılandırma sistemine sahiptir. Ne değiştiğine ilişkin daha fazla bilgi için bu bağlantıyı here adresine gönderin.

HttpRedirect değeri nasıl elde edilir: IIS yapılandırma ayarlarına erişmek için System.DirectoryServices ad alanını kullanmak yerine C# 'de yeni Microsoft.Web.Administration.dll dosyasını kullanın.

Kodunuz IIS.net gelen bu örnekteki gibi görünmelidir: Aslında yeni Microsoft.Web.Administration.dll ile oldukça çok şey yapabilir

using System; 
using System.Text; 
using Microsoft.Web.Administration; 

internal static class Sample 
{ 
    private static void Main() 
    { 
     using (ServerManager serverManager = new ServerManager()) 
     { 
     Configuration config = serverManager.GetWebConfiguration("Default Web Site"); 
     ConfigurationSection httpRedirectSection =         config.GetSection("system.webServer/httpRedirect"); 
     Console.WriteLine("Redirect is {0}.", httpRedirectSection["enabled"].Equals("true") ? "enabled" : "disabled"); 

     } 
    } 
} 

. Bazı fikirler için Check out Carlos Ag'ın blogu here.

İki kısa notlar: "IIS Yönetim Komut Dosyaları ve Araçları" rol hizmeti yüklü olup olmadığını

  • Microsoft.Web.Administration.dll mevcuttur. Sistem kökünde inetsrv dizininin altında olmalıdır.
  • MWA dll ile çalıştırdığınız kodların IIS yapılandırmasına erişmek için Yönetici olarak çalıştırılması gerekir, bu nedenle yalnızca komut dosyasını çalıştıran hesabın yönetici haklarına sahip olduğundan emin olun.

Bu yardımcı olur umarız!

6

IIS7 <httpRedirect> öğesinde, IIS 6.0 HttpRedirect metatabanı özelliğinin yerini alır.

Sen web.config dosyada böyle kurmak gerekir:

<system.webServer> 
    <httpRedirect enabled="true" destination="WebSite/myDir/default.aspx" />" 
    </system.webServer> 

onları IIS 6 yolu yapmak için bir yol hakkında bu makale görüşmeler, web.config çimdik istemiyorsanız: Creating Http Redirects in IIS7 on Virtual Directories like IIS6

Bu yardımcı olur umarım.

+0

Kod kullanarak yolları düzenlemek/değiştirmek için kolay bir yol yok (yani C#)? Ya bir cmd veya web.config olmalı? – Dynde

+0

Bu değişiklik tek şey ** nasıl ** IIS'yi yapılandırırsınız. IIS6, metatabanı, IIS7 web.config aracılığıyla yapılmıştır. – Mrchief