Если вы используете MSBuild для развертывания в Интернете, вы можете написать CustomBuildTask в .net, который вы можете используйте для создания своего виртуального каталога.
Есть много ресурсов о том, как создавать и использовать пользовательские задачи сборки, но вот код я использую, чтобы создать виртуальный каталог с помощью пользовательской сборки задачу:
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 виртуальных каталогов? Таким образом, у вас есть 40 различных приложений. Хммм, похоже, много. Какой сайт вы разрабатываете? Я знаю мелких хостинг-провайдеров, у которых на своем сервере меньше виртуальных каталогов, чем у вас :-) –
Нет, это не 40 различных приложений. Я постепенно перемещаю HUGE (400k + строки кода и более 100 000 страниц) классическое приложение ASP для .NET MVC. Пары virt позволяют новому сайту получать доступ к старому содержимому по существующим URL-адресам. –