对于给定的 Web 应用服务,当设置多个部署槽时,例如:
myapp
myapp/staging
我创建了一个在 上标记为“部署槽设置”的 appSetting myapp,当我交换槽时会发生什么?部署槽设置是保留myapp还是移动到myapp/staging?
另外,如果我在部署槽之间混合和匹配部署槽设置和非部署槽设置,会发生什么情况?
azure azure-configuration azure-deployment-slots azure-web-app-service
我发现在不活动期间向我们的Web角色发出请求会导致请求非常慢(最多30秒).在初始请求之后,角色将按预期执行.
经过大量谷歌搜索,我遇到了四种不同的策略(如下所列):
RoleEntryPoint.OnStart()public override bool OnStart()
{
using (var server = new ServerManager())
{
server.ApplicationPoolDefaults.ProcessModel.IdleTimeout = TimeSpan.Zero;
server.CommitChanges();
}
return base.OnStart();
}
Run Code Online (Sandbox Code Playgroud)
这也要求角色在更高的层次上运行.
RoleEntryPoint.Run()public override void Run()
{
var localuri = new Uri(string.Format("https://{0}/Help", RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpsIn"].IPEndpoint));
while (true)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(localuri);
request.Method = "GET";
var response = request.GetResponse();
}
catch { }
System.Threading.Thread.Sleep(3000);
}
}
Run Code Online (Sandbox Code Playgroud)
preloadEnabled和startMode在RoleEntryPoint.OnStart()public override void OnStart()
{
using (var serverManager = new ServerManager())
{
foreach …Run Code Online (Sandbox Code Playgroud) 我目前在Azure中有一个应用程序,每当我们将它推入Staging段时,由于连接字符串指向prod数据库,我们无法真正测试.
有人向我提到,您应该能够在(而非)web.config文件中设置ServiceConfiguration.cscfg文件中的连接字符串.这样,您可以更改Azure门户中的连接字符串,而不是重新发布who app.
有谁知道如何做到这一点?
connection-string web-config azure azure-configuration azure-cloud-services
在我的Windows Azure管理门户中,我仍然看到"3个月免费试用"订阅,尽管它已经过期并自动取消.我已经删除了它中的托管服务以及数据库,但它仍然没有消失.
如何完全删除订阅?
我希望使用CloudConfigurationManager,以便我可以利用Azure配置文件.我想使用连接字符串我在Cloud.cscfg中添加了一个字符串来配置实体框架上下文.
我正在配置我的上下文
public DomainContext()
: base("ContextConnectionString")
Run Code Online (Sandbox Code Playgroud)
这是从Web.config获取ContextConnectionString
我将Context Constructor更改为this
public DomainContext()
: base(CloudConfigurationManager.GetSetting("ContextConnectionString"))
Run Code Online (Sandbox Code Playgroud)
它现在有效.
是否有更优雅的方式告诉我的上下文构造函数首先使用Azure cscfg?
当我登录Windows Azure门户时,它将我的默认订阅设置为我无法访问的朋友帐户.我想将帐户设置为我的帐户作为默认帐户.
如果我点击订阅图标,它有一个列表"按目录过滤",它列出了我的所有订阅.我无法访问的那个被列为"默认目录".我该如何改变呢.
当我登录URL时,我会指示我:https://manage.windowsazure.com/@ [SomeAccount]hotmail.onmicrosoft.com
其中[SomeAccount]是我不再需要的订阅的名称.知道为什么我登录时会出现这个默认值吗?有没有办法摆脱这种情况,或者在我登录时将我自己的订阅设置为默认订阅.

在Azure之前发布:
在使用Azure之前,我们只有坐在不同环境中的只读配置文件(测试,登台和生产等).在发布期间,所有应用程序文件(无配置文件)都将部署到相关环境中.然后,应用程序文件将读取环境的配置文件,以获取连接字符串和其他特定于环境的详细信息.我认为这是一个非常标准的设置?
在Azure之后发布:
现在我们将Web应用程序移动到Azure Web角色.Web角色使用ServiceConfiguration.Cloud.cscfg和ServiceConfiguration.Local.cscfg文件.
发布到云服务时,需要知道连接字符串.如果我们要发布到测试云服务,则ServiceConfiguration.Cloud.cscfg需要进行相应的编辑.如果我们要发布到临时或生产云服务,则ServiceConfiguration.Cloud.cscfg需要进一步更改.
我更倾向于在开始部署时从连接字符串中抽象开发人员AWAY.这可以防止指向错误环境的错误(这可能会产生巨大的影响).如何才能做到这一点?
我知道可以在Azure管理门户中更改这些配置设置,但是将此步骤包含在发布过程中意味着开发人员需要访问管理门户,这不是一个理想的情况,因为仍有余量错误(加上对管理门户的'开放'访问权限).
更新:
我发现您可以通过添加更多(和重命名)来管理您的服务配置文件:

然后通过一起选择正确的云服务(黑色)和正确的服务配置(红色箭头),开发人员不需要了解配置详细信息:

在部署到云服务时,开发人员仍然存在选择错误服务配置的问题(但是这可能会自动进入脚本以防止这种情况发生?)
我的主要信息是环境类型(蓝色箭头).这对我来说没用.
.net azure azure-web-roles azure-configuration web.config-transform
有没有人知道是否可以在Windows Azure上获取Web或辅助角色的静态IP地址(可能只在私有测试版中)?
ip-address azure static-ip-address azure-configuration azure-deployment
这个问题可能与Azure虚拟机无关,但我希望Azure提供比Amazon EC2更简单的方法.
我在多个Azure虚拟机上运行长期运行的应用程序(即不是Azure网站或[Paas]角色).它们是简单的控制台应用程序/ Windows服务.有时,我会进行代码刷新,需要停止这些进程,更新代码/二进制文件,然后重新启动这些进程.
在过去,我曾尝试使用PSTools(psexec)来远程执行此操作,但这似乎是一种黑客攻击.有没有更好的方法来远程终止应用程序,刷新部署,并重新启动应用程序?
理想情况下,Visual Studio中会有一个" 发布控制台应用程序 "等同于允许我将代码部署为Azure网站,但我猜这是不可能的.
非常感谢任何建议!
我正在编写Azure应用程序以使用Azure服务配置设置,以便我们可以实时更改它.我可以通过在Azure门户网站中部署然后更改它们来测试它.
如何在我的本地azure计算模拟器上实时更改服务配置?