- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试为我的 MVC 项目使用 azure 进行日志记录,但到目前为止还没有取得太大成功。
我的 ServiceConfiguration.Cloud.cscfg
文件中有一个诊断连接字符串,它指向我的 Blob 存储:
...
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.DiagnosticsConnectionString" value="**ConectionString**" />
</ConfigurationSettings>
我的web.config
已设置跟踪
...
<tracing>
<traceFailedRequests>
<remove path="*"/>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module" verbosity="Verbose" />
</traceAreas>
<failureDefinitions timeTaken="00:00:15" statusCodes="400-599" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
我的WebRole.cs
在
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;
namespace MvcWebRole1
{
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
// Get the factory configuration so that it can be edited
DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Set scheduled transfer interval for infrastructure logs to 1 minute
config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1);
// Specify a logging level to filter records to transfer
config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
// Set scheduled transfer interval for user's Windows Azure Logs to 1 minute
config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1);
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.DiagnosticsConnectionString", config);
//RoleEnvironment.Changing += this.RoleEnvironmentChanging;
return base.OnStart();
}
}
}
但是我没有看到任何诊断日志
mam
文件夹仅包含一个 MACommanda.xml
和一个 MASecret
,vsdeploy
文件夹为空,并且wad-control-container
为每个部署都有一个文件。
我错过了什么/做错了什么吗?
我一直在尝试遵循 http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx 的指南特别是http://channel9.msdn.com/learn/courses/Azure/Deployment/DeployingApplicationsinWindowsAzure/Exercise-3-Monitoring-Applications-in-Windows-Azure
更新:
我发现以下内容可能是问题的一部分
IIS7 Logs Are Not Collected Properly - http://msdn.microsoft.com/en-us/library/hh134842
虽然这应该只说明 404 不工作,但故障定义为 15 秒,我的 Controller 操作中的 17 秒 sleep 应该仍会被记录
最佳答案
以下是我最终能够在 Azure Web 角色上运行所有日志记录的方法:
在 WebRole.cs 中包含以下内容:
// Get the default initial configuration for DiagnosticMonitor.
var config = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Filter the logs so that only error-level logs are transferred to persistent storage.
config.DiagnosticInfrastructureLogs.ScheduledTransferLogLevelFilter = config.Logs.ScheduledTransferLogLevelFilter =
config.WindowsEventLog.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
// Schedule a transfer period of 30 minutes.
config.DiagnosticInfrastructureLogs.ScheduledTransferPeriod = config.Logs.ScheduledTransferPeriod = config.WindowsEventLog.ScheduledTransferPeriod =
config.Directories.ScheduledTransferPeriod = config.PerformanceCounters.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
// Specify a buffer quota.
config.DiagnosticInfrastructureLogs.BufferQuotaInMB = config.Logs.BufferQuotaInMB = config.WindowsEventLog.BufferQuotaInMB =
config.Directories.BufferQuotaInMB = config.PerformanceCounters.BufferQuotaInMB = 512;
// Set an overall quota of 8GB maximum size.
config.OverallQuotaInMB = 8192;
// WindowsEventLog data buffer being added to the configuration, which is defined to collect event data from the System and Application channel
config.WindowsEventLog.DataSources.Add("System!*");
config.WindowsEventLog.DataSources.Add("Application!*");
// Use 30 seconds for the perf counter sample rate.
TimeSpan perfSampleRate = TimeSpan.FromSeconds(30D);
config.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Memory\Available Bytes",
SampleRate = perfSampleRate
});
config.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Processor(_Total)\% Processor Time",
SampleRate = perfSampleRate
});
config.PerformanceCounters.DataSources.Add(new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\ASP.NET\Applications Running",
SampleRate = perfSampleRate
});
// Start the DiagnosticMonitor using the diagnosticConfig and our connection string.
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString",config);
return base.OnStart();
在system.WebServer下的web.config中添加以下内容:
<tracing>
<traceFailedRequests>
<remove path="*"/>
<add path="*">
<traceAreas>
<add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="400-599" />
</add>
</traceFailedRequests>
</tracing>
在服务定义文件中的 Web 角色下添加以下内容:
<LocalResources>
<LocalStorage name="DiagnosticStore" sizeInMB="8192" cleanOnRoleRecycle="false"/>
</LocalResources>
这应该启用 MVC 应用程序中的所有日志记录。
关于azure - 如何让 azure webrole 记录所有 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278572/
我运行一个azrue webrole(托管2个网站+1个网络服务),它最初是在提到的“包”中上传的。初次上传后,我通过 Web 部署发布了其中一个网站的一些修补程序。 如果我的 azrue 角色重新启
我正在我的网络应用程序中编写代码,该代码需要列出并搜索网络角色上安装的特定证书。这是我的代码 // using System.Security.Cryptography.X509Certificate
我正在尝试找出一种解决方案,让 WebRole 每天早上 5 点运行任务。我查看了 Quartz.Net 和 stackoverflow 上的示例,但它们都将任务安排为每 10 分钟运行一次。有没有任
我已升级到 azure 1.7,现在我的构建过程已损坏。我有一个在构建后运行的脚本,它简单地触发 cspack,如下所示。 cspack "C:\Users\MyAppBuild\.hudson\jo
我正在尝试找出一种解决方案,让 WebRole 每天早上 5 点运行任务。我查看了 Quartz.Net 和 stackoverflow 上的示例,但它们都将任务安排为每 10 分钟运行一次。有没有任
A 有一个 azure 的网络角色,其中有一个测试页面和一个担任该角色的服务。发布角色后,它不会自动启动,仅在首次使用时启动。因此,如果角色由于某种原因被关闭,之后的第一次使用会非常慢。 有没有办法让
我正在开发 Azure Web 应用程序。该代码在我的本地计算机上编译并运行良好。但是,当我在 Azure 平台中上传包时,webrole 无法启动,并显示“忙碌”状态,并显示以下消息:“正在等待 A
我的 Azure 解决方案中有一个简单的 WebRole 类: public class WebRole : RoleEntryPoint { public override bool OnS
我有一个作为 Web 角色托管在 Azure 上的 Web 服务。在此 Web 角色中,我重写 Run() 方法并按以下顺序执行一些数据库操作,基本上充当辅助角色。 转到 blob 存储来提取一小组数
在升级部署的情况下,OnStart 是否会从 WebRole.cs 调用? 最佳答案 http://msdn.microsoft.com/en-us/library/microsoft.windows
我知道我们可以使用“站点”部分为许多站点拥有一个 WebRole。 我想知道这样做的限制:在哪些情况下创建新的 WebRole 更好? 最佳答案 文档声称您拥有“完整的 IIS” - 因此限制会相当高
我希望能够从正在运行的 Web 角色中获取部署的名称(在创建托管服务时命名)和位置(北欧、亚洲等)。我不想依赖证书和订阅 ID。 类似于: // Current role name. Ex: WebR
我正在探索 Azure 平台,但遇到了问题。 其实,有一点我不明白...... 我了解 Web 角色和辅助角色之间的区别。但是如何专门为 Java 应用程序创建 Web 角色呢? 因为在eclipse
目标:这一切都是为了支付一个 WebRole 实例的费用,但演示/测试多个站点,这些站点是完全独立的 VS 项目(ASP MVC 5,但这一定不重要)。站点不是通过端口号而是通过域名(主机)名称来区分
我们有一个带有 Web 角色的 Azure 云服务。我想将纯 html 文件上传到 Web 角色的应用程序,而不进行完全重新部署(该文件无论如何都会添加到下一个构建中)。该网络角色有多个实例,每个实例
我创建了一个具有两个角色的托管服务 - Web 角色和辅助角色。我想使用 ZeroMQ 在内部角色之间进行通信(我计划创建一堆这样的托管服务,每个服务中要处理的数据略有不同)。我想知道如何从 Web
有时,在我们部署在 Azure Web 角色上的网站中,问题与 javascript 和 HTML 中的小错误有关。我们转到 webroles 的所有实例并修复计算机上的这些 JS 和 HTML 文件
我在 Azure Web 角色中添加了多个网站,如下所示:
运行 Azure webrole 项目时,异常的堆栈跟踪没有行号。 是否可以为 webrole Azure 项目的异常(exception)提供行号? 项目使用 MVC.NET 布局。这意味着 Con
我想在运行时使用 c# 将键值对添加到 Azure Web 角色 web.config 文件。 非常感谢任何帮助。 最佳答案 这就是我们最终的做法。 我们在 web.config 中添加了一个值为空的
我是一名优秀的程序员,十分优秀!