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
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.
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!
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
- 1. IIS 6.0 DirectoryEintry-Eigenschaftsliste
- 2. Entwicklungscomputer IIS-Version vs. Bereitstellung IIS-Version
- 3. Monitor IIS 6.0
- 4. Stapelüberlauf auf IIS 6.0
- 5. IIS 6.0 Debugging-Methoden
- 6. IIS 6.0 Application Pool Absturz
- 7. IIS 6.0 App Poolfreigabe DLLs
- 8. Fehler beim IIS 6.0-Anwendungspool
- 9. IIS 6.0 Website-Server-Ausgabe? oder Serverkonsole? Neu bei IIS 6.0
- 10. C# DirectoryEntry Fehler?
- 11. IIS 6.0 erinnert sich hartnäckig an Authentifizierungseinstellungen
- 12. Wie WCF-Dienst auf IIS 6.0
- 13. Standardbenutzer für IIS 6.0 für ASP.NET
- 14. IIS 6.0 Zugriffsberechtigungen für die Remote-Freigabe
- 15. WCF läuft nicht unter IIS 6.0
- 16. IIS 6.0, klassische ASP detaillierte Fehlermeldung
- 17. Bereitstellen von Mvc-Projekt zu IIS 6.0
- 18. Ändern des Standardgebietsschemas in IIS 6.0
- 19. Erstellen eines IIS 6.0-Anwendungspools mit Powershell
- 20. Abrufen von IIS 6.0-Zertifikatsinformationen in .NET
- 21. Verwenden von ProcessModelInfo mit IIS 6.0
- 22. FormsAuthentication.SetAuthCookie funktioniert in IE10 und IIS 6.0 nicht
- 23. DirectoryEntry memberOf-Eigenschaft gibt den vollständigen Pfad zurück
- 24. LdapConnection Vs DirectoryEntry
- 25. Unterschiede zwischen IIS 6.0/Windows 2003 und IIS 7.0/Windows 2008
- 26. ASP.NET 4.0-Webformular Routing auf IIS 6.0 Windows Server 2003
- 27. <httpRuntime requestValidationMode = "2.0" /> funktioniert nicht (mit IIS 6.0)
- 28. Validierungsprobleme, die von IIS 5.1 des lokalen Computers auf IIS 6.0 des Webservers bereitgestellt werden
- 29. Bereitstellen von C# -Projekt auf einer Website mit IIS 6.0
- 30. Fehler 500 mit Webservices auf IIS 6.0 WS 2003
Die Verbindung ist tot. –