ServerManager CommitChanges вносит изменения с небольшой задержкой

У меня есть небольшая проблема с классом 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 - Not Found", поскольку изменения, принятые из ServerManager, не завершены (я думаю), Если я обновлю страницу после 404, загрузится новое приложение.

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

Ура!

1 ответ

Решение

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

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

Ура!

Другие вопросы по тегам