ServerManager CommitChanges вносит изменения с небольшой задержкой - PullRequest
4 голосов
/ 16 сентября 2011

У меня небольшая проблема с классом ServerManager (из сборки Microsoft.Web.Administration), и я надеюсь, что некоторые из вас могут мне помочь.

В основном мне нужно создать новое приложение на сайте(с использованием IIS 7.5) и перенаправьте пользователя в новое приложение внутри того же события. Эта функциональность реализована в веб-приложении .net с использованием mvc 3 / c #.

Вот мой код:

ServerManager iisManager = new ServerManager();
Site mySite = iisManager.Sites["mySitesName"];            
ApplicationCollection applications = mySite.Applications;

Application app = applications.Add(newapp, physicalPath);
app.ApplicationPoolName = "myAppPool";

iisManager.CommitChanges();                    
iisManager.Dispose();

return new RedirectResult("http://localhost/" + newapp);

Я думаю, что проблема с этим кодом заключается в том, что ServerManager, похоже, передает изменения с небольшой задержкой, а перенаправление во вновь добавленное приложение в IIS возвращает «Ошибка HTTP 404.0 - Не найдено», поскольку изменения, принятые из ServerManager, не выполнены.закончил (я думаю).Если я обновлю страницу после 404, загрузится новое приложение.

Любая помощь или идея очень ценится.

Ура!

1 Ответ

5 голосов
/ 28 сентября 2011

Кажется, что документацию об этой "задержке" очень трудно найти ... или не существует.В конце концов я использовал «Thread.Sleep», как это было предложено на iis.net .

Надеюсь, это поможет другим, нуждающимся.*

...