Ich habe eine neue ASP.NET MVC-Webanwendung erstellt, die für das Schulmanagement zuständig ist. Jetzt möchte ich eine neue Web-App erstellen, die dabei hilft, diese App mit neuer Sub-Domain und neuer Datenbank für neu registrierte Clients bereitzustellen. Was ist der beste Ansatz für diese Arbeit? Ich habe kleine Informationen über diese Art von Anwendungen, nach diesen Informationen denke ich, es ist etwas mit Dienstleistungen von Webhosting-Unternehmen wie Microsoft Azure, die Erstellung und Konfiguration von virtuellen Maschinen programmatisch mit der Fähigkeit, App zu diesem bereitstellen bereitstellt neu erstellte VMs auch programmatisch! schreibe ich? Wenn Sie mein Problem immer noch nicht verstanden haben, versuchen Sie bitte shopify (https://www.shopify.com/) zu besuchen, das die Schaffung von Geschäften für Nicht-Profis mit der gleichen Weise, wie ich in meinem Projekt möchte, bietet. Vielen DankProgrammgesteuertes Erstellen mehrerer asp-Web-App-Instanzen mit verschiedenen Domänennamen und verschiedenen virtuellen Maschinen
0
A
Antwort
1
Der folgende Code erstellt ein neues virtuelles Verzeichnis auf dem IIS-Host.
/// <summary>
/// Create a new virtual directory on the iis host.
/// </summary>
/// <param name="iisHostPath">The iis host path.</param>
/// <param name="physicalPath">The physical path to the directory.</param>
/// <param name="virtualDirectoryName">The virtual directory name.</param>
/// <param name="defaultDocument">The defualt document to set.</param>
/// <returns>True if the virtual directory was created else false.</returns>
/// <example>
/// iisHostPath : [servername]/[service]/[websiteID]/[Root] : localhost/W3SVC/1/Root
/// defaultDocument : [document] : default.aspx
/// </example>
/// <remarks>
/// <para>iisHostPath : [servername]/[service]/[websiteID]/[Root] : localhost/W3SVC/1/Root</para>
/// <para>defaultDocument : [document] : default.aspx</para>
/// </remarks>
public virtual bool CreateVirtualDirectory(string iisHostPath, string physicalPath,
string virtualDirectoryName, string defaultDocument)
{
// Validate the inputs.
if (String.IsNullOrEmpty(iisHostPath))
throw new System.ArgumentNullException("IIS path can not be null.",
new System.Exception("A valid IIS path should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(physicalPath))
throw new System.ArgumentNullException("Physical can not be null.",
new System.Exception("A valid physical path should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(virtualDirectoryName))
throw new System.ArgumentNullException("Virtual directory name can not be null.",
new System.Exception("A valid virtual directory name should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(defaultDocument))
throw new System.ArgumentNullException("Default document can not be null.",
new System.Exception("A valid default document should be specified."));
// Create a new directory entry
// instance to the iis machine.
DirectoryEntry localMachine = new DirectoryEntry(
"IIS://" + iisHostPath);
// Add the iis virtual directory
// to the iis collection.
DirectoryEntry virtName = localMachine.Children.Add(virtualDirectoryName, "IIsWebVirtualDir");
// Commit the changes for the account.
virtName.CommitChanges();
// Assign default properties.
virtName.Properties["Path"][0] = physicalPath;
virtName.Properties["DefaultDoc"][0] = defaultDocument;
virtName.Properties["AccessScript"][0] = true;
// These properties are necessary for an application to be created.
virtName.Properties["AppFriendlyName"][0] = virtualDirectoryName;
virtName.Properties["AppIsolated"][0] = "1";
virtName.Properties["AppRoot"][0] = "/LM/" + iisHostPath;
// Commit the changes for the account.
virtName.CommitChanges();
// Close the connections.
virtName.Close();
localMachine.Close();
// Return success.
return true;
}
Der folgende Code erstellt eine neue Website auf dem II-Host.
/// <summary>
/// Create a new web site on the iis host.
/// </summary>
/// <param name="iisHostPath">The iis host path.</param>
/// <param name="websiteID">The unique web site id.</param>
/// <param name="websiteName">The name of the web site.</param>
/// <param name="physicalPath">The physical path to the root directory.</param>
/// <returns>True if the web site was created else false.</returns>
/// <example>
/// iisHostPath : [servername]/[service] : localhost/W3SVC
/// websiteID : [number] : 454354
/// </example>
/// <remarks>
/// <para>iisHostPath : [servername]/[service] : localhost/W3SVC</para>
/// <para>websiteID : [number] : 454354</para>
/// </remarks>
public virtual bool CreateWebSite(string iisHostPath,
string websiteID, string websiteName, string physicalPath)
{
// Validate the inputs.
if (String.IsNullOrEmpty(iisHostPath))
throw new System.ArgumentNullException("IIS path can not be null.",
new System.Exception("A valid IIS path should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(websiteID))
throw new System.ArgumentNullException("Web site id can not be null.",
new System.Exception("A valid web site id should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(websiteName))
throw new System.ArgumentNullException("Web site name can not be null.",
new System.Exception("A valid web site name should be specified."));
// Validate the inputs.
if (String.IsNullOrEmpty(physicalPath))
throw new System.ArgumentNullException("Physical can not be null.",
new System.Exception("A valid physical path should be specified."));
// Create a new directory entry
// instance to the iis machine.
DirectoryEntry localMachine = new DirectoryEntry(
"IIS://" + iisHostPath);
// Add the iis web site
// to the iis collection.
DirectoryEntry siteName = localMachine.Children.Add(websiteID, "IIsWebServer");
// Assign the web site properties.
siteName.Properties["ServerComment"][0] = websiteName;
siteName.CommitChanges();
// Commit the changes for the account.
siteName.CommitChanges();
// Add the iis web site
// to the iis collection.
DirectoryEntry rootName = siteName.Children.Add("Root", "IIsWebVirtualDir");
// Assign the web site properties.
rootName.Properties["Path"][0] = physicalPath;
rootName.Properties["AccessScript"][0] = true;
// Commit the changes for the account.
rootName.CommitChanges();
// Close the connections.
rootName.Close();
siteName.Close();
localMachine.Close();
// Return success.
return true;
}
Der folgende Code legt die Portnummer auf einer Website auf dem IIS-Host fest.
/// <summary>
/// Set a port number to a web site on the iis host.
/// </summary>
/// <param name="iisHostPath">The iis host path.</param>
/// <param name="portNumber">The port number.</param>
/// <returns>True if the port number was assigned else false.</returns>
/// <example>
/// iisHostPath : [servername]/[service]/[websiteID] : localhost/W3SVC/1
/// </example>
/// <remarks>
/// <para>iisHostPath : [servername]/[service]/[websiteID] : localhost/W3SVC/1</para>
/// </remarks>
public virtual bool SetWebSitePortNumber(string iisHostPath, int portNumber)
{
// Validate the inputs.
if (String.IsNullOrEmpty(iisHostPath))
throw new System.ArgumentNullException("IIS path can not be null.",
new System.Exception("A valid IIS path should be specified."));
// Validate the inputs.
if (portNumber < 1)
throw new System.ArgumentNullException("Port number not valid.",
new System.Exception("The port number must be greater than zero."));
// Create a new directory entry
// instance to the iis machine.
DirectoryEntry localMachine = new DirectoryEntry(
"IIS://" + iisHostPath);
// Set the web site port number.
localMachine.Properties["ServerBindings"][0] = ":" + portNumber + ":";
// Commit the changes for the account.
localMachine.CommitChanges();
// Close the connections.
localMachine.Close();
// Return success.
return true;
}
Beachten Sie, dass localMachine.Properties["ServerBindings"][0] =
im Advanced Settings
Ihrer Website in IIS zu Bindings
bezieht.
Verwandte Themen
- 1. Müllsammler Leistung auf verschiedenen Maschinen
- 2. Kompilieren über verschiedene Maschinen (mit verschiedenen gcc)
- 3. DecimalFormat führt zu zwei verschiedenen Ergebnissen auf verschiedenen Maschinen
- 4. Hyper-v: keine neuen virtuellen Maschinen erstellen
- 5. Jenkins - CI mit virtuellen Maschinen
- 6. verbrauchen web api, ports auf verschiedenen maschinen
- 7. Verwenden Sie NVIDIA K20-Karten auf virtuellen Maschinen auf demselben Server mit verschiedenen CUDA SDK-Versionen
- 8. -Monitor CPU-Auslastung auf verschiedenen Maschinen
- 9. Erstellen mehrerer ähnlicher Unterordner in mehreren verschiedenen Ordnern mit Python
- 10. Android/Eclipse: Erstellen mehrerer Builds mit verschiedenen COM-IDs
- 11. Makefile für Programm auf verschiedenen Maschinen ausgeführt
- 12. HTML-Video sieht auf verschiedenen Maschinen anders aus
- 13. Erstellen Sie SQL Server Login für IIS APPPOOL - IIS und SQL Server auf verschiedenen Maschinen
- 14. Ausrichten mehrerer FloatingActionButtons mit verschiedenen Größen - Android
- 15. SAS Verkettung mehrerer Variablen mit verschiedenen Formaten
- 16. Plotten mehrerer Histogramme mit verschiedenen Linienstile Python
- 17. Kernel entwickeln und in virtuellen Maschinen testen
- 18. Ein geeigneter Weg, um Dateien auf verschiedenen Maschinen mit C#
- 19. Programmgesteuertes Hinzufügen mehrerer Layouts
- 20. Erstellen Sie Ansicht durch Ausführen mehrerer Summen in verschiedenen Spalten
- 21. Senden mehrerer E-Mails mit verschiedenen Empfänger und Inhalt
- 22. Eine neue Art der Softwareverteilung mit virtuellen Maschinen?
- 23. Wiederholbare Builds aus demselben C# -Quellcode auf verschiedenen Maschinen
- 24. Azure-Vorlage zum Erstellen von virtuellen Maschinen mit Platten in mehreren Speicherkonten
- 25. npm5 package-lock.json verschiedene Einträge auf verschiedenen Maschinen
- 26. Summe mehrerer Werte in verschiedenen Tabellen
- 27. Mein Programm gibt unterschiedliche Ausgabe auf verschiedenen Maschinen ..!
- 28. Dateisystem Berechtigungen während der Entwicklung auf verschiedenen Maschinen
- 29. R - verschiedene Ergebnisse auf verschiedenen Maschinen (nicht deterministisch)
- 30. QTableView wird nicht korrekt auf verschiedenen Maschinen angezeigt