目前是否有人成功使用ApplicationInsight?
我没有遇到麻烦试图让它发挥作用.
首先,我在VS拒绝使用ApplicationInsight创建新网站并将ApplicationInsight添加到现有网站时遇到了很多问题.它给下一个无用的错误.
我终于设法得到一个新的网站,人工智能在我的机器上工作(等待'一段时间后',这是微软最初问题的官方答案).然而,这个网站突然开始在启动时挂起,绝对没有我能找到的错误消息或调试信息.
我浪费了一天时间来研究数据库连接问题,因为这是我在禁用AI之前开始挂起的工作,并且它再次开始工作.
是否有可用于AI的调试信息,以便如果它再次发生我可以抓住它?
其他人的帮助和经验非常感谢.
干杯迈克
补充信息:
我正在运行VS 2013更新4.
所有其他软件应该是最新的.
重现步骤:
这应该无法运行.它只是挂起,等待localhost.如果你添加一些断点,那么它实际上似乎在注册区域时挂在global.asax中.
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); <------------- hangs here
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Run Code Online (Sandbox Code Playgroud)
这条线没有多大意义,因为该线在干净的MVC项目中没有做任何事情.
如果在web.config中禁用AI,则项目将再次运行.
<modules>
<remove name="FormsAuthentication" />
<remove name="ApplicationInsightsWebTracking" />
<!--
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Extensibility.Web.RequestTracking.WebRequestTrackingModule, Microsoft.ApplicationInsights.Extensibility.Web" preCondition="managedHandler" />
-->
</modules>
Run Code Online (Sandbox Code Playgroud)
如果其他人可以尝试复制这将是一个很好的开始.
谢谢.
我正在通过在类级别附加到模型的模型验证器执行一些模型验证.如果我发现错误,我需要能够将该错误附加到视图中的相关字段,以便可以向用户清楚地显示.
但是,只需将memberNames传递给ValidationResult就不会做任何事情.相反,我发现我需要在控制器中重新验证,然后填充ModelState对象.
这是代码:
public class CompletedMilestoneInCorrectOrderAttribute : ValidationAttribute
{
private const string DefaultErrorMessage = "Milestones cannot be completed out of sequence";
public CompletedMilestoneInCorrectOrderAttribute()
: base(DefaultErrorMessage)
{
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var model = (RevisionEditViewModel)validationContext.ObjectInstance;
var previousCompleted = true;
var loop = 0;
var members = new List<string>();
foreach (var rm in model.RevisionMilestones)
{
if (rm.Completed && !previousCompleted)
{
members.Add("revisionMilestones[" + loop + "].ExpectedCompletionDate");
members.Add("revisionMilestones[" + loop + "].Completed");
}
if (!rm.NotApplicable)
{
previousCompleted = rm.Completed; …Run Code Online (Sandbox Code Playgroud) 我试图了解Asp.net身份系统的内部工作原理,并且已经看到所有async调用它似乎都使用了WithCurrentCulture()任务扩展.我查看了该扩展的源代码,但我无法弄清楚它正在做什么或为什么.
从文档
配置用于等待此任务的awaiter,以避免将延续编组回原始上下文,但保留当前的文化和UI文化.
有人可以对此有所了解吗?
我正在考虑实现SendMail Inbound Parse Webhook,但发现他们提供的示例似乎远远没有完美的解决方案.
https://sendgrid.com/docs/Code_Examples/Webhook_Examples/csharp.html#-Parse-Webhook
[HttpPost]
public async Task<HttpResponseMessage> Post()
{
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
await Request.Content.ReadAsMultipartAsync(provider);
var email = new Email
{
Dkim = provider.FormData.GetValues("dkim").FirstOrDefault(),
To = provider.FormData.GetValues("to").FirstOrDefault(),
Html = provider.FormData.GetValues("html").FirstOrDefault(),
From = provider.FormData.GetValues("from").FirstOrDefault(),
Text = provider.FormData.GetValues("text").FirstOrDefault(),
SenderIp = provider.FormData.GetValues("sender_ip").FirstOrDefault(),
Envelope = provider.FormData.GetValues("envelope").FirstOrDefault(),
Attachments = int.Parse(provider.FormData.GetValues("attachments").FirstOrDefault()),
Subject = provider.FormData.GetValues("subject").FirstOrDefault(),
Charsets = provider.FormData.GetValues("charsets").FirstOrDefault(),
Spf = provider.FormData.GetValues("spf").FirstOrDefault()
};
// The email is now stored in the email variable
return new HttpResponseMessage(HttpStatusCode.OK);
}
Run Code Online (Sandbox Code Playgroud)
这不会以任何方式使用模型绑定,这对我来说似乎是错误的.他们的代码也不会从表单数据中提取附件.
所有的建议,例子和帮助非常感谢.