小编Jam*_*mes的帖子

Azure上的MVC网站在每个页面的第一次加载时超级慢

我正在开发一个MVC网站上的性能问题.当站点在Azure中托管时,在第一次加载页面时,视图的呈现阶段会花费大量时间,我们每页说的是15-60秒.之后对同一页面的后续加载非常快速,正如人们所期望的那样.这是来自Glimpse的第一次点击页面的痕迹:

在此输入图像描述

从图中可以看出,Razor渲染似乎是主要的攻击者.我已经阅读了很多关于Razor视图预编译的内容,我已经尝试过实现它,但它对我们没有任何影响.我也正在使用Azure Web App开发人员,他们指责Glimpse是一个问题,但我已经尝试过没有安装Glimpse的应用程序,它仍然像往常一样慢.

我变得非常困在这里......任何想法?

asp.net-mvc performance azure razor asp.net-mvc-5

12
推荐指数
2
解决办法
2308
查看次数

在资源管理器模板中定义WebApp插槽

我无法使用资源管理器模板以编程方式查找有关向WebApps添加插槽的信息/指南.我的基本配置运行良好,创建了WebApp本身,SQL服务器,SQL DB等,但我也很想完成插槽,所以我可以将它们用于开发/测试版本.

有谁知道这有什么好资源?

deployment azure dsc azure-resource-manager

4
推荐指数
1
解决办法
1796
查看次数

这个不可变属性可以转换为自动属性吗?

我一直在浏览我正在开发的应用程序,它大量使用不变性.我刚刚发现只有getter的自动属性在C#6.0中,所以我正在重构使用它们.我打了一个可能的问号,这是我通过公共属性公开private IList<T>对象的地方ReadOnlyCollection<T>,以避免它们被转换回原始List<T>对象的可能性,例如

private IList<string> tags = new List<string>();

public IEnumerable<string> Tags => new ReadOnlyCollection<string>(this.tags);

有没有办法在这种类型的自定义getter中使用自动属性?

c# c#-6.0

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

foreach与Task.WhenAll()-执行上有什么区别吗?

在我的应用程序中的管道上,有一个选项可以注入一组预请求处理程序,这些请求处理程序可以在请求首次进入管道时对其进行更改。管道是完全异步的,因此必须等待这些请求前处理程序调用(以及其他所有请求)。我有几种不同的方式来调用这些处理程序,我想知道它们之间是否有任何区别,如果有什么区别?例如,是否将各种处理程序以相同的顺序调用?哪个选项可能提供最佳性能?

选项1:foreach

foreach (var handler in this.preRequestHandlers)
{
    await handler.Handle(request);
}
Run Code Online (Sandbox Code Playgroud)

选项2:ForEach()

this.preRequestHandlers.ForEach(async handler => await handler.Handle(request));
Run Code Online (Sandbox Code Playgroud)

选项3:Task.WhenAll()

await Task.WhenAll(this.preRequestHandlers.Select(handler => handler.Handle(request)));
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

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