标签: azure-web-sites

Azure WebJob超时配置设置

我们有一个Azure网站,每天都有预定的工作.在我们的示例中,计划的作业运行大约10分钟的存储过程,因此没有本地处理.我们的网络工作在大约4分钟后因此错误而终止.

Command 'cmd /c ...' aborted due to no output and CPU activity for 121 seconds.
You may increase SCM_COMMAND_IDLE_TIMEOUT setting to solve the issue.
Run Code Online (Sandbox Code Playgroud)

我们已尝试将以下应用设置添加到Web作业的app.config文件中:

<appSettings>
    <add key="SCM_COMMAND_IDLE_TIMEOUT" value="100000" />
    <add key="WEBJOBS_IDLE_TIMEOUT" value="100000" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

这些文件在本文档https://github.com/projectkudu/kudu/wiki/Web-jobs中引用,但它们似乎没有任何效果.(在将设置添加到app.config文件后仍然超时)

我们是否将配置设置添加到正确的位置?

谢谢您的帮助.

asp.net azure azure-web-sites azure-webjobs

19
推荐指数
2
解决办法
2万
查看次数

Azure应用服务网站在闲置一段时间后响应时间较慢

在过去的几周里,我们一直在研究一些性能问题,我们的MVC应用程序对第​​一个请求的响应非常慢.对于第一个请求,我们说的是30-45秒,对于每个新视图,我们说的是3秒.我们的MVC应用程序使用位于同一服务器上的OData API(Web API).除了与MVC应用程序相同的性能问题之外,对实体框架版本6的第一个查询在6秒内执行,而新查询比后续查询执行慢200ms.

为了满足我们的要求,我们选择执行所有已知的Ef查询,并从Global.asax中的Application_Start命中所有MVC/API端点.这似乎在至少几个小时内工作正常,但经过一段时间没有使用,对每个MVC视图的第一个请求在3-5秒内响应.

我们已将网站配置为"始终开启",我们在IIS日志中找不到任何内容,或者我们在Application_Start中添加了日志记录.所以我们的应用程序似乎至少没有回收利用.我怀疑某种IIS缓存被清除或者某些Ef缓存?欢迎任何建议.

azure-web-sites

19
推荐指数
3
解决办法
7523
查看次数

更改Azure资源组位置

我在azure中设置了一组资源组合在一起的资源.我希望我的服务位于西欧,所以我的所有资源都在那里(如果可能的话)

我刚刚注意到,在创建资源组时,我意外地使用了West US.

所以目前的设置是:

资源组1(美国西部)

  • App Service 1(西欧)
  • App Service 2(西欧)
  • SQL Server(西欧)
  • 存储帐户(西欧)
  • ......(西欧)

我是否可以更改资源组的位置而无需创建新资源组并进行迁移?

也许更重要的是:我应该改变位置还是不影响任何东西?

谢谢!

azure azure-storage azure-web-sites azure-resource-manager azure-sql-database

19
推荐指数
2
解决办法
2万
查看次数

如何更改azure网站服务的默认时区?

我是Azure网站服务的新手.我上传了我的网站文件,它非常好用.

但是我的默认时区有问题.我的位置是首尔(+9).但是当我在下面调用时,代码返回UTC(+0)时间.

DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题没有像编辑Web.config这样的复杂修复?

timezone azure azure-web-sites

18
推荐指数
2
解决办法
2万
查看次数

Azure网站 - 无法单独扩展网站(新的虚拟主机计划组)

就在今天早上,Azure WebSites的管理门户不再允许我单独扩展.看起来我的所有网站都被归为"网络托管计划".现在,当我创建一个新网站时,我必须选择一个计划.我环顾四周,找不到任何关于"虚拟主机计划"的信息 - 这是一个早期推出的预览功能吗?有谁知道如何创建新计划并将网站切换到它?

在此输入图像描述

azure azure-web-sites

18
推荐指数
2
解决办法
3459
查看次数

如何在Azure上的Application Insights中将异常链接到请求?

我们在Azure上使用Owin来提供REST服务,并且必须直接向Application Insights报告.我们想记录异常和请求.现在我们有这个:

using AppFunc = Func<IDictionary<string, object>, Task>;
public class InsightsReportMiddleware
{

    readonly AppFunc next;
    readonly TelemetryClient telemetryClient;

    public InsightsReportMiddleware(AppFunc next, TelemetryClient telemetryClient)
    {
        if (next == null)
        {
            throw new ArgumentNullException("next");
        }

        this.telemetryClient = telemetryClient;
        this.next = next;
    }

    public async Task Invoke(IDictionary<string, object> environment)
    {
        var sw = new Stopwatch();
        sw.Start();

        await next(environment);
        sw.Stop();

        var ctx = new OwinContext(environment);
        var rt = new RequestTelemetry(
            name: ctx.Request.Path.ToString(),
            timestamp: DateTimeOffset.Now,
            duration: sw.Elapsed,
            responseCode: ctx.Response.StatusCode.ToString(),
            success: 200 == ctx.Response.StatusCode
            );

        rt.Url …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api azure-web-sites owin azure-application-insights

18
推荐指数
2
解决办法
4959
查看次数

如何防止在Azure网站生产< - >暂存插槽中交换Azure webjobs

我有一个Azure网站,其中包含一个包含多个实例的生产和临时插槽.

我在网站上运行了几个Azure webjobs,其中一些是触发其他连续的.

据我所知,触发的webjobs只能在一个实例上运行一次.

我目前的设置是:

  • 生产站点除了从分段交换之外没有其他部署

  • 暂存网站设置为从bitbucket持续部署

  • 使用"发布到Azure"将Webjobs从VS内部署到生产槽(因为AFAIK不支持基于计划的webjobs的连续部署)

  • 该网站的VS解决方案与包含webjobs的VS解决方案不同

我注意到当我交换生产和分期时,webjobs也被交换了!当我将新的webjob部署到生产中并随后进行网站部署然后进行交换时,我意识到了这一点,新部署的webjob不再位于生产槽中!

我的问题:

  1. 是否有可能阻止webjobs在生产和分期之间交换(webjobs实际上是完全不同的代码片段而不是网站)

  2. 什么是交换webjobs?二进制文件?时间表?两个?

  3. 如何阻止所有webjobs在临时插槽上运行?我的webjobs不需要高度可用,我可以轻松地离线测试它们.

  4. 如果我VS将webjobs部署到临时插槽并进行交换,那么当前的暂存插槽将缺少已部署的webjob,当我进行下一次网站更新时,我将丢失它,那么我应该在哪里部署我的webjobs?

有一个相关的线程,但它假设webjob与一个网站同时部署,这不是我目前的.

我真的很喜欢网站和webjobs,但似乎与连续独立部署webjobs和网站有关的故事被打破了.

真的很感激建议!

谢谢

azure-web-sites azure-webjobs

18
推荐指数
2
解决办法
5288
查看次数

横向扩展如何在Azure应用服务中工作

我试图围绕Azure应用服务计划和Azure应用服务的概念,没有运气.

我的理解是,应用服务计划定义了容量和定价,分配给特定应用服务计划的所有应用将共享相同的资源,是吗?

如果这是正确的,那么扩展的好处是什么?如果扩展将创建同一应用的更多实例,最终将在同一个应用服务计划(共享相同的资源)上托管?

我阅读了几乎所有关于Azure应用服务计划和应用服务的官方和非官方文档,但找不到这个问题的答案,他们都说扩展正在应用程序级别(而不是应用程序服务计划)和同时说分配到同一应用服务计划的应用实际上共享相同的资源,那么横向扩展功能的好处是什么?

问候,

azure azure-web-sites azure-app-service-plans azure-web-app-service

18
推荐指数
2
解决办法
1万
查看次数

在Web部署期间,Visual Studio 2015在Azure云上找不到现有的Web应用程序

在我的Azure帐户上,我有几个Web应用程序.

我正在尝试使用PublishVisual Studio 2015部署我的ASP.NET MVC项目.但它在我的Azure帐户上找不到任何现有的Web应用程序.我在Visual Studio中登录.凭证是正确的.但VS中的现有Web应用程序列表为空:

在此输入图像描述


我选择Microsoft Azure Web Apps:

然后加载一段时间,最后现有Web应用程序列表为空. 在此输入图像描述


我认为这是我的具体项目不起作用.然后我创建了新的ASP MVC Web应用程序(模板).列表仍然是空的.

我的IDE:MS Visual Studio Professional 2015-U3


VS无法在我的Azure云帐户上找到现有Web应用程序的原因是什么?我试图重新输入我的凭据,注销并登录.没有.

asp.net-mvc azure azure-web-sites visual-studio-2015 azure-web-app-service

18
推荐指数
1
解决办法
4573
查看次数

Azure Web App(ASP.NET MVC)每十分钟变冷一次,需要加载10到20秒

我对Azure Web App有一个非常奇怪的问题,我对此感到非常沮丧.

我们的应用程序在使用时非常快速且反应灵敏,但是,如果我们不使用它大约十分钟,它的启动非常冷(~10-20秒).这种冷启动仅在涉及数据库时才会发生.当它有点像我们发布网络应用程序时.

我们的尝试

在Azure中使用Application Insights,我们每隔5分钟设置一次ping:

在此输入图像描述

异常值总是由我的部署引起(现在不使用部署槽).但是,此登录页面不会调用我们的数据库,因此我们看不到这些数据中的"冷"启动.

应用程序设置应该是可靠的.我们的网络应用程序托管在北欧,具有Always on:

在此输入图像描述

我们刚刚将整个设置移至新的资源组/应用服务计划,以确保我们的问题与我们的其他应用程序纠缠在一起.新的应用服务计划是一个Standard 1 small,这应该不是问题.看看我们的消费情况,我并不担心,甚至可能尝试一下我解决问题后会做的小型服务:

在此输入图像描述

我们的SQL数据库也托管在北欧(检查位置十亿次,因为我之前犯了这个错误).

就像app服务一样,我们选择了"太大"的硬件来确保不会导致问题(标准S0:10 DTU).使用率低得离谱:

在此输入图像描述

我们确实使用持续部署(Deployment options在Azure菜单中),但是在查看部署时,它不应该经常部署:

在此输入图像描述

令人沮丧的是,应用程序在工作时具有超级响应性.当它"温暖"时,每个页面都会在几秒钟内加载,就像我的网络应用程序上显示的平均响应时间一样:

在此输入图像描述

但是当我们(或我们的用户!)使用我们的应用程序时,这些数字是完全错误的.在这里,我们经历了第一次+ 10-20秒的负载.

有谁有想法吗?任何提示?你不知道我会多么感激.

编辑和更新1:

我决定再设置一些测试.我现在设法通过调用另一个页面来获得显示我们问题的真实数据.具有讽刺意味的是,这个页面不会调用数据库,所以虽然我认为这是一个数据库问题,但它似乎不是这样的.在这里看到挑战(趋势持续+24小时).

奇怪的是它的稳定性大约是10秒.趋势似乎不是每10-20分钟,而是接近每5分钟 - 它们之间的间隔完全相同:

在此输入图像描述

编辑和更新2:

我一直在挖掘更多.事实证明,有一些非常有趣的见解:来自编辑1的"慢速"11秒调用仅来自美国东部和一个端点(http://prntscr.com/jcv69w),以及

我找到的最有趣的事情如下:

应用程序本身没有任何缓存.我使用实体框架,我假设使用一些缓存,但这就是全部.

我登录了我们的应用程序,并在Chrome中点击了.我发现,我访问过的页面是即时显示的(使用来自数据库的数据),但如果我打开一个新页面,它会加载缓慢.在我第一次打开页面时,似乎正在缓存某些实体.

然后我尝试在新的浏览器中打开应用程序.如果我打开了之前在Chrome中打开的页面,它会立即打开.如果我打开了一个我之前没有点击的新页面,它将会有~10秒的负载.

我现在最好的猜测是我使用的实体框架出于某种原因提出了问题.

编辑3:

刚刚添加了赏金,并且正在设置大量的日志记录.我添加了MiniProfiler,但无法让它在生产中工作(仅在本地请求中显示).

我还在global.asax中添加了日志记录Application_Start,Application_BeginRequestApplication_EndRequest在那里查看了一些和状态.将尽快更新结果.

编辑4:

所以现在我有了第一个有趣的数字.该应用程序没有被回收.Application_Start只被叫一次.

我可以看到通过登录的时间差EndRequestBeginRequest.我可以看到有多个调用,这两个调用之间需要超过+15秒......但是当网站温暖时,根据页面需要大约0.5-2秒.所以在请求的开始和结束之间发生了一些非常奇怪的事情.进一步调试!

编辑5:

让MiniProfiler工作.以下是慢负载(~15秒)的示例:

在此输入图像描述

我的下一步是添加实体框架跟踪,甚至更多线路调用.我在数据库上赚了钱!

编辑6:

Okidoki,我错了.它的渲染方法很慢 - 而不是数据库!我不知道如何调试这个... 到谷歌!

在此输入图像描述

编辑7:

是时候再次更新了.现状是:没有解决任何问题.

所以我尝试了很多东西:

1)我试图禁用所有类型的缓存(使用属性阻止ASP.NET MVC中的缓存以获取特定操作)并且我有相同的行为.首次加载?慢.下次加载?快速.等待5-10分钟,相同的行为所以没有解决.

2)我的startup.auth文件中有一些自定义的东西,延迟5分钟.删除.不是问题.

3)我使用自定义属性进行授权.我删除了.

4)我更新了我的实体框架实现,使其在每个请求中工作

我真的很沮丧.我的下一步是:

A)尝试制作相同页面的5-10个版本(没有_layout,带有布局,带数据库,没有数据库,有依赖注入,没有......所有这些),所以看看我是否能找到一个模式. …

asp.net asp.net-mvc azure azure-web-sites devops

18
推荐指数
1
解决办法
1292
查看次数