Jeśli używasz MSBuild do wdrożenia twojej strony internetowej, możesz napisać CustomBuildTask w .net, który możesz użyj, aby utworzyć swój katalog wirtualny.
Istnieje wiele środków, w jaki sposób tworzyć i konsumować niestandardowego zadania kompilacji, ale tutaj jest kod używam utworzyć katalog wirtualny przy użyciu niestandardowego zadania Budowa:
public void CreateVirtualDirectory()
{
DirectoryEntry oDE = new DirectoryEntry("IIS://" +
this._strServerName + "/W3SVC/" + _webSiteID + "/Root");
//Get Default Web Site
DirectoryEntries oDC = oDE.Children;
//Add row to schema
DirectoryEntry oVirDir = oDC.Add(this._strVDirName,
oDE.SchemaClassName.ToString());
//Commit changes for Schema class File
oVirDir.CommitChanges();
//Set virtual directory to physical path
oVirDir.Properties["Path"].Value = this._strPhysicalPath;
//Set read access
oVirDir.Properties["AccessRead"][0] = true;
//Set the default docs
oVirDir.Properties["EnableDefaultDoc"][0] = true;
oVirDir.Properties["DefaultDoc"][0] = "default.aspx";
//set the name
oVirDir.Properties["AppFriendlyName"][0] = this._strVDirName;
//do it
oVirDir.Invoke("AppCreate", true);
//set the application pool
if (!string.IsNullOrEmpty(_strApplicationPool))
{
object[] param = { 0, _strApplicationPool, true };
oVirDir.Invoke("AppCreate3", param);
oVirDir.Properties["AppIsolated"][0] = "2";
}
//Save all the changes
oVirDir.CommitChanges();
}
40 wirtualnych katalogów? Więc masz 40 różnych aplikacji. Hmmm, to wydaje się dużo. Jakiego rodzaju strony rozwijasz? Znam małych dostawców hostingu, którzy mają mniej wirtualnych katalogów na swoim serwerze niż Ty :-) –
Nie, to nie 40 różnych aplikacji. Stopniowo przenoszę OGROMNĄ (400k + linie kodu i ponad 100 000 stron) klasyczną aplikację ASP na .NET MVC. Foldery virt umożliwiają nowej witrynie dostęp do starej zawartości przy istniejących adresach URL. –