小编Mik*_*ond的帖子

ApplicationInsight导致网站在启动时挂起

目前是否有人成功使用ApplicationInsight?

我没有遇到麻烦试图让它发挥作用.

首先,我在VS拒绝使用ApplicationInsight创建新网站并将ApplicationInsight添加到现有网站时遇到了很多问题.它给下一个无用的错误.

我终于设法得到一个新的网站,人工智能在我的机器上工作(等待'一段时间后',这是微软最初问题的官方答案).然而,这个网站突然开始在启动时挂起,绝对没有我能找到的错误消息或调试信息.

我浪费了一天时间来研究数据库连接问题,因为这是我在禁用AI之前开始挂起的工作,并且它再次开始工作.

是否有可用于AI的调试信息,以便如果它再次发生我可以抓住它?

其他人的帮助和经验非常感谢.

干杯迈克

补充信息:

我正在运行VS 2013更新4.

所有其他软件应该是最新的.

重现步骤:

  1. 开始VS.
  2. 新项目
  3. MVC项目连接到ApplicationInsight

这应该无法运行.它只是挂起,等待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)

如果其他人可以尝试复制这将是一个很好的开始.

谢谢.

.net asp.net azure-application-insights

7
推荐指数
1
解决办法
3733
查看次数

ValidationResult中的memberNames未按预期工作

我正在通过在类级别附加到模型的模型验证器执行一些模型验证.如果我发现错误,我需要能够将该错误附加到视图中的相关字段,以便可以向用户清楚地显示.

但是,只需将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-mvc-5

6
推荐指数
0
解决办法
1427
查看次数

Asp.net Identity任务扩展WithCurrentCulture()的作用是什么?为什么?

我试图了解Asp.net身份系统的内部工作原理,并且已经看到所有async调用它似乎都使用了WithCurrentCulture()任务扩展.我查看了该扩展的源代码,但我无法弄清楚它正在做什么或为什么.

从文档

配置用于等待此任务的awaiter,以避免将延续编组回原始上下文,但保留当前的文化和UI文化.

有人可以对此有所了解吗?

c# asp.net asp.net-identity

5
推荐指数
1
解决办法
1769
查看次数

如何使用MVC模型绑定从Asp.net MVC中的SendGrid Inbound Parse Webhook获取数据?

我正在考虑实现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)

这不会以任何方式使用模型绑定,这对我来说似乎是错误的.他们的代码也不会从表单数据中提取附件.

所有的建议,例子和帮助非常感谢.

c# asp.net asp.net-mvc sendmail

-1
推荐指数
1
解决办法
1101
查看次数