Windows Azure SDK允許您在每個環境中進行多項服務配置。但web.config修改有點困難。在你的情況下,我會建議你編寫一些代碼(或啓動任務),從服務配置中讀取連接字符串並將其寫入web.config。
安迪的博客文章「Programmatically modify web.config on WebRole Startup」正好說明你如何能做到這一點:
public override bool OnStart()
{
using (var server = new ServerManager())
{
// get the site's web configuration
var siteNameFromServiceModel = "Web"; // TODO: update this site name for your site.
var siteName =
string.Format("{0}_{1}", RoleEnvironment.CurrentRoleInstance.Id, siteNameFromServiceModel);
var siteConfig = server.Sites[siteName].GetWebConfiguration();
// get the appSettings section
var appSettings = siteConfig.GetSection("appSettings").GetCollection();
AddElement(appSettings, "deploymentId", RoleEnvironment.DeploymentId);
AddElement(appSettings, "internalEndpointPort", RoleEnvironment.CurrentRoleInstance.InstanceEndpoints
.First(t=>t.Key=="InternalEndpoint1").Value
.IPEndpoint.Port.ToString());
server.CommitChanges();
}
return base.OnStart();
}
被忽略的常規Web.config文件,從GUI採取設置,部署到Azure的時候(我是一個天青新手)? – IrishChieftain
博客文章中未提及的一件事是,您必須以提升的權限運行您的角色才能保存配置更改。 –
IrishChieftain總是部署Web.config(它仍然需要您的ASP.NET Web應用程序正常工作),但通過此代碼,您可以使用ServiceConfiguration中的設置修改它。 –