2009-08-19 5 views
2

Après avoir créé un site Web, je remarque qu'il définit la version asp.net sur 1.1. Je voudrais dans le code changer cela à la version 2.0.50727. J'ai trouvé que dans la propriété ScriptMaps il y a une liste de chaînes de toutes les extensions de fichier et du mappage de code. Mais je n'ai pas compris comment changer toutes les valeurs qui sont connectées à .net? Ou est-il un moyen de lui dire d'utiliser une autre version avec .invoke?IIS 6.0 Propriété DirectoryEntry ScriptMaps et définition de la version .Net

Répondre

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(); 

Après essais et erreurs, j'ai trouvé une solution. J'ai pris tous les objets dans le site créé et fait une copie où j'ai changé la partie de la version de la chaîne de chemin d'accès. Ensuite, j'ai défini la propriété value de l'objet scriptMaps pour pointer vers le nouveau tableau d'objets mis à jour.

1

Un moyen facile est d'exécuter « aspnet_regiis -i ». Le fichier aspnet_regiis.exe sera situé à - C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe.

Alternativement, vous pouvez prendre la dure, et jeter un oeil à un article sur modification of IIS Metabase.

Prendre le chemin plus difficile, pour moi, est beaucoup plus froid que celui facile!

0

La commande suivante installe la version ASP.NET associée à l'outil et met à jour les cartes de script de toutes les applications ASP.NET existantes. Notez que seules les applications actuellement mappées à une version antérieure d'ASP.NET sont affectées.

Aspnet_regiis -i

le Aspnet_regiis.exe est sous le chemin suivant:

C: \ WINDOWS \ Microsoft.NET \ Framework \ "dot net la version que vous voulez changer"

dans votre cas sera sous v2.0.50727:

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

source: ASP.NET IIS Registration Tool

+0

Le lien est mort. –

Questions connexes