Да, вы можете изменить свою роль для изменения файла web.config во время выполнения с помощью классов редактора конфигурации в API IIS Admin. Я не пробовал этого, но он должен позволить вам загрузить настройки из конфигурации Azure во время запуска, а затем применить к экземпляру среды выполнения вашей роли. Таким образом, вы, скорее всего, установите это в разделе Application_start global.asax веб-роли.
В качестве альтернативы, вы можете программно создать web.config во время запуска роли, используя задачу запуска.
Для 1-го подхода:
Проведите исследование на iis.net, а затем прочитайте это сообщение на форуме IIS:
http://forums.iis.net/t/1150481.aspx
Возьмите образец от пользователя ruslany (укажите должное, но вставьте, чтобы вы его увидели):
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection rulesSection = config.GetSection("system.webServer/rewrite/rules");
ConfigurationElementCollection rulesCollection = rulesSection.GetCollection();
ConfigurationElement ruleElement = rulesCollection.CreateElement("rule");
ruleElement["name"] = @"MyTestRule";
ruleElement["stopProcessing"] = true;
ConfigurationElement matchElement = ruleElement.GetChildElement("match");
matchElement["url"] = @"foo\.asp";
ConfigurationElement conditionsElement = ruleElement.GetChildElement("conditions");
ConfigurationElementCollection conditionsCollection = conditionsElement.GetCollection();
ConfigurationElement addElement = conditionsCollection.CreateElement("add");
addElement["input"] = @"{HTTP_HOST}";
addElement["pattern"] = @"www\.foo\.com";
conditionsCollection.Add(addElement);
ConfigurationElement actionElement = ruleElement.GetChildElement("action");
actionElement["type"] = @"Rewrite";
actionElement["url"] = @"bar.asp";
rulesCollection.Add(ruleElement);
serverManager.CommitChanges();
}