2009-08-19 6 views
2

Nach dem Erstellen einer Website, stelle ich fest, dass es die asp.net-Version auf 1.1 setzt. Ich möchte dies in Code auf Version 2.0.50727 ändern. Ich habe festgestellt, dass in der ScriptMaps-Eigenschaft eine String-Liste aller Dateierweiterungen und Code-Mappings vorhanden ist. Aber ich habe nicht herausgefunden, wie man alle Werte ändert, die mit .net verbunden sind? Oder gibt es eine Möglichkeit, eine andere Version mit .invoke zu verwenden?IIS 6.0 DirectoryEntry ScriptMaps -Eigenschaft und set.Net Version

Antwort

5
DirectoryEntry sited = new DirectoryEntry(string.Format("IIS://localhost/w3svc/{0}/Root", websiteID.ToString())); 
sited.Properties["AccessRead"].Add(true); 

PropertyValueCollection testScriptMap = sited.Properties["ScriptMaps"]; 

object[] allValues = (object[])testScriptMap.Value; 
object[] newValues = new object[allValues.Length]; 
string oldVersion = "v1.1.4322"; 
string newVersion = "v2.0.50727"; 
for (int i = 0; i < allValues.Length; i++) 
{ 
    if (allValues[i] is string) 
    { 
     string temp = allValues[i] as string; 
     if (temp.Contains(oldVersion)) 
     { 
      newValues[i] = temp.Replace(oldVersion, newVersion); 
     } 
     else 
     { 
      newValues[i] = allValues[i]; 
     } 
    } 
    else 
    { 
     newValues[i] = allValues[i]; 
    } 
} 
testScriptMap.Value = newValues;    

sited.CommitChanges(); 

Nach wenig Versuch und Irrtum fand ich eine Lösung. Ich nahm alle Objekte in der erstellten Site und erstellte eine Kopie, wo ich den Versionsteil der Pfadzeichenfolge änderte. Dann setze ich die Werteigenschaft des scriptMaps-Objekts so, dass sie auf das neue aktualisierte Objektarray verweist.

1

Ein einfacher Weg ist "aspnet_regiis -i" auszuführen. Die Datei aspnet_regiis.exe befindet sich unter - C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe.

Alternativ können Sie den harten Weg nehmen, und schauen Sie sich einen Artikel auf modification of IIS Metabase.

Der härtere Weg zu mir ist viel kühler als der einfache!

0

Der folgende Befehl installiert die mit dem Tool verknüpfte ASP.NET-Version und aktualisiert die Skriptzuordnungen aller vorhandenen ASP.NET-Anwendungen. Beachten Sie, dass nur Anwendungen betroffen sind, die derzeit einer früheren Version von ASP.NET zugeordnet sind.

Aspnet_regiis -i

die Aspnet_regiis.exe ist unter folgendem Pfad:

C: \ WINDOWS \ Microsoft.NET \ Framework \ "dot net Version möchten Sie ändern"

in Ihrem Fall wird unter v2.0.50727 sein:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727

Quelle: ASP.NET IIS Registration Tool

+0

Die Verbindung ist tot. –

Verwandte Themen