我正在开发一个结构为N-Tier / 3-Tier Architectural Style的项目。层(客户端 - 服务器)通过HTTP和WCF相互通信。我想使用AppInsights来跟踪项目中的所有内容。但是,我对项目中创建或添加AppInsight包的位置感到困惑。我在Azure上的一个资源组下创建了两个资源实例。然后,我配置了inst。关于解决方案中项目的关键和其他事项。虽然我用我的overIde handle属性(如AppInsights文档中所述),但是我无法看到从客户端到服务器的所有调用方法和异常跟踪以及层。是否无法跟踪该项目类型中的异常或我错了?
UPDATE以获取明确定义问题的其他信息:当我使用一个资源和一个检测项时,AppInsights定义了整个项目,并显示了我的解决方案及其依赖关系。但是,当一个请求由于服务器中的异常而失败时,我无法达到整个异常跟踪,只是从服务器请求请求的最后一个方法。因此,我使用两个资源实例,一个用于服务器,一个用于客户端(不是真正的客户端,它就像中间层)。
答案 0 :(得分:0)
如果您使用多个应用/密钥和多个图层,则可能需要引入自定义代码来设置/传递诸如通过http标头的correlationId之类的内容,以及读取并将其用作应用程序洞察的“操作ID”的代码。如果您跨不同的应用程序/ ikey完成工作,那么在应用程序中搜索将变得更加复杂。
相反,您可能希望在所有层中仅使用一个ikey,而是在不同的环境中使用不同的ikeys,例如dev / staging / prod。
有一些阅读/使用operationId的例子,比如这篇博文: http://blog.marcinbudny.com/2016/04/application-insights-for-owin-based.html#.WBkL24WcFaQ
有人做与OWIN类似的事情。
对于异常跟踪,如果异常发生在其他一个asp.net图层上,您可能需要启用一些额外的设置来为它们收集异常或更多信息:
http://apmtips.com/blog/2016/06/21/application-insights-for-mvc-and-mvc-web-api/