Web dağıtımınız için MSBuild kullanıyorsanız, .Net'de bir CustomBuildTask yazabilirsiniz. sanal dizini oluşturmak için kullanın.
Orada oluşturmak ve özel yapı görevi tüketmek için nasıl kaynakların bir yeri vardır, ama burada özel bir yapı görevi kullanarak sanal dizin oluşturmak için kullandığınız koddur:
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 sanal dizinleri? Yani 40 farklı uygulama var. Hmmm, bu çok gibi görünüyor. Ne tür bir site geliştiriyorsunuz? Sunucularına daha az sanal dizinleri olan küçük barındırma sağlayıcılarını biliyorum :-) –
Hayır, 40 farklı uygulama değil. Ben yavaş yavaş büyük (400k + satır kod ve 100.000'den fazla sayfa) klasik ASP uygulamasını .NET MVC'ye geçiriyorum. Yeni klasörler, yeni sitenin mevcut URL'lerdeki eski içeriğe erişmesine izin verir. –