Вот горит проект сегодня. не могу закончить из-за какой-то глупости.
Необходимо из ASP.NET создавать новые сайты под IIS.
Вроже со всем разобрался и сделал причем пробовал уже и через ADSI и чере WMI.
Сайт создается ок, права на папку у пользователя есть, но при попытке открыть страницу полчаю 404 ошибку.
Вот если при этом зайду на страницу свойств сайта в HomeDirectory и что-то там помнеяю и отменю (ну так чтобы только Apply стала активной) и жму ОК, то сайт работает нормлаьно.
Мистика какая-от!
Пробовал смотреть что в метабазе меняется - ничего не меняется. только UNCPassword добавляется секьюрный. но если его удалить, то вс е равно далее вс е работает. Кто с таким сталкивался?
вот кусок кода с созданием сайта:
public static int CreateWebsite(string serverComment, string serverBindings, string homeDirectory, string defaultfile, string logdir)
{
DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");
//Create a website object array
object[] newsite = new object[]{serverComment, new object[]{serverBindings}, homeDirectory};
//invoke IIsWebService.CreateNewSite
object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite);
DirectoryEntry siteroot = new DirectoryEntry("IIS://localhost/w3svc/" + ((int)websiteId).ToString()+"/root");
//siteroot.Properties["AuthFlags"][0] = 5;
siteroot.Properties["AccessFlags"][0] = 513;
siteroot.Properties["AppFriendlyName"][0] = "serverComment";
siteroot.Properties["AuthAnonymous"][0] = true;
siteroot.Properties["AnonymousPasswordSync"][0] = true;
siteroot.Properties["EnableDefaultDoc"][0] = true;
siteroot.Properties["DefaultDoc"][0] = defaultfile;
siteroot.CommitChanges();
// siteroot.Invoke("AppCreate2", new object[] {1});
// siteroot.Properties["AppFriendlyName"][0] = "NewApp";
siteroot.CommitChanges();
DirectoryEntry site = new DirectoryEntry("IIS://localhost/w3svc/" + ((int)websiteId).ToString());
site.Invoke("Start", null);
return (int)websiteId;
}
Лучше побыть дураком 5 минут, чем остаться им на всю жизнь ...