{"id":1718,"date":"2014-12-16T18:57:37","date_gmt":"2014-12-16T18:57:37","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1718"},"modified":"2025-06-13T23:52:58","modified_gmt":"2025-06-14T06:52:58","slug":"net-couchbase-client-instrumentation-aspnet-and-glimpse","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/","title":{"rendered":"Instrumenta\u00e7\u00e3o de cliente .NET Couchbase com ASP.NET e Glimpse"},"content":{"rendered":"<p>A biblioteca de clientes .NET fornece informa\u00e7\u00f5es detalhadas sobre erros por meio de sua interface IOperationResult.  Para descobrir por que uma opera\u00e7\u00e3o de armazenamento falhou, use <em>ExecuteStore<\/em> em vez de <em>Loja<\/em>.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace;\">var result <span style=\"color: #008000;\">=<\/span> cliente<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">ExecuteStore<\/span><span style=\"color: #008000;\">(<\/span>StoreMode<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">Adicionar<\/span>, <span style=\"color: #666666;\">\"chave\"<\/span>, <span style=\"color: #666666;\">\"valor\"<\/span><span style=\"color: #008000;\">)<\/span><span style=\"color: #008000;\">;<\/span><br \/>\n<span style=\"color: #0600ff; font-weight: bold;\">se<\/span> <span style=\"color: #008000;\">(<\/span><span style=\"color: #008000;\">!<\/span> resultado<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">Sucesso<\/span><span style=\"color: #008000;\">)<\/span><br \/>\n<span style=\"color: #008000;\">{<\/span><br \/>\nConsole<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">WriteLine<\/span><span style=\"color: #008000;\">(<\/span><span style=\"color: #666666;\">\"A opera\u00e7\u00e3o falhou com a mensagem {0} e o c\u00f3digo de status {1}\"<\/span>, resultado<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">Mensagem<\/span>, resultado<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">StatusCode<\/span><span style=\"color: #008000;\">)<\/span><span style=\"color: #008000;\">;<\/span><br \/>\n<span style=\"color: #008000;\">}<\/span><\/div>\n<\/div>\n<p>Enquanto o <em>IOperationResult<\/em> que \u00e9 retornado fornece c\u00f3digos de status, exce\u00e7\u00f5es capturadas e mensagens de erro, h\u00e1 situa\u00e7\u00f5es em que o registro detalhado \u00e9 necess\u00e1rio para diagnosticar um problema persistente.<\/p>\n<p>Com a recente vers\u00e3o 1.2.2 da biblioteca de clientes .NET para o Couchbase, os assemblies de registro s\u00e3o inclu\u00eddos por padr\u00e3o na biblioteca <a href=\"https:\/\/nuget.org\/packages\/couchbasenetclient\">Pacote Nuget<\/a> e o zip com o <a href=\"https:\/\/packages.couchbase.com\/clients\/net\/1.2\/Couchbase-Net-Client-1.2.2.zip\">bin\u00e1rios mais recentes<\/a>.  Fora da caixa, o Couchbase (e sua depend\u00eancia Enyim.Caching) oferece suporte ao registro log4net e NLog.<\/p>\n<p>\u00c9 muito simples ativar o registro em log com o Couchbase, mas voc\u00ea precisa conhecer os conceitos b\u00e1sicos de configura\u00e7\u00e3o do log4net ou do NLog para come\u00e7ar.  Se estiver apenas come\u00e7ando com o Couchbase e o ASP.NET, seria \u00fatil ver os detalhes do registro sem precisar aprender outra estrutura, mesmo que m\u00ednima.  Felizmente, se voc\u00ea estiver usando a ferramenta de diagn\u00f3stico <a href=\"https:\/\/getglimpse.com\/\">Vislumbre<\/a> no seu aplicativo ASP.NET, voc\u00ea pode ativar o registro em log com bastante facilidade.<\/p>\n<p>Se voc\u00ea n\u00e3o estiver familiarizado com o Glimpse, a analogia comum \u00e9 o \"Firebug para ASP.NET\".  Depois de instalar o pacote NuGet do Glimpse e ativar a estrutura, voc\u00ea obt\u00e9m uma janela de diagn\u00f3stico em seu aplicativo que fornece uma vis\u00e3o da solicita\u00e7\u00e3o conforme ela foi executada no servidor.  Voc\u00ea pode ver suas configura\u00e7\u00f5es web.config, detalhes do ambiente, rotas, vari\u00e1veis do servidor e v\u00e1rios outros aspectos do aplicativo Web em execu\u00e7\u00e3o.<\/p>\n<p>Nik e Anthony, que criaram o projeto Glimpse de c\u00f3digo aberto (agora apoiado pela Redgate), criaram um modelo de extensibilidade poderoso.  Conectar-se \u00e0 interface do usu\u00e1rio do Glimpse para fornecer detalhes de instrumenta\u00e7\u00e3o para uma biblioteca \u00e9 t\u00e3o simples quanto implementar a fun\u00e7\u00e3o <em>ITab<\/em> (ou estendendo a interface <em>TabBase<\/em>).<\/p>\n<p>A depend\u00eancia Enyim.Caching no cliente Couchbase define <em>ILog<\/em> e <em>ILogFactory<\/em> que, quando implementadas, podem ser usadas para fornecer um provedor de registro personalizado para capturar detalhes de instrumenta\u00e7\u00e3o do Couchbase.  Para meu novo projeto CouchbaseLabs Couchbase.Glimpse, criei um novo registrador que capturar\u00e1 os registros por solicita\u00e7\u00e3o e enviar\u00e1 a sa\u00edda para o Glimpse.<\/p>\n<p>Para come\u00e7ar, <a href=\"https:\/\/getglimpse.com\/Docs\/#download\">instalar e ativar o Glimpse<\/a>.  Depois de fazer isso, instale o <a href=\"https:\/\/www.nuget.org\/packages\/CouchbaseGlimpse\">CouchbaseGlimpse<\/a> extens\u00e3o.  O pacote NuGet adicionar\u00e1 a configura\u00e7\u00e3o necess\u00e1ria para voc\u00ea.  Voc\u00ea tamb\u00e9m pode obter o c\u00f3digo-fonte <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-glimpse\">do GitHub<\/a>.  Se optar pela rota do c\u00f3digo-fonte, ser\u00e1 necess\u00e1rio incluir a se\u00e7\u00e3o de configura\u00e7\u00e3o abaixo.<\/p>\n<div class=\"geshifilter\">\n<div class=\"xml geshifilter-xml\" style=\"font-family: monospace;\"><span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;configura\u00e7\u00e3o<span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;configSections<span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;sectionGroup<\/span> <span style=\"color: #000066;\">nome<\/span>=<span style=\"color: #ff0000;\">\"enyim.com\"<\/span><span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;se\u00e7\u00e3o<\/span> <span style=\"color: #000066;\">nome<\/span>=<span style=\"color: #ff0000;\">\"log\"<\/span> <span style=\"color: #000066;\">tipo<\/span>=<span style=\"color: #ff0000;\">\"Enyim.Caching.Configuration.LoggerSection, Enyim.Caching\"<\/span> <span style=\"color: #000000; font-weight: bold;\">\/&gt;<\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><br \/>\n&#8230;<br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;enyim.com<span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&lt;log<\/span> <span style=\"color: #000066;\">f\u00e1brica<\/span>=<span style=\"color: #ff0000;\">\"Couchbase.Glimpse.Logging.GlimpseLogFactory, Couchbase.Glimpse\"<\/span> <span style=\"color: #000000; font-weight: bold;\">\/&gt;<\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><br \/>\n<span style=\"color: #009900;\"><span style=\"color: #000000; font-weight: bold;\">&gt;<\/span><\/span><\/div>\n<\/div>\n<p>Voc\u00ea precisar\u00e1 ativar o registro em log para come\u00e7ar a capturar detalhes do cliente.  Em algum lugar do seu aplicativo, provavelmente em Application_Start, voc\u00ea precisar\u00e1 chamar a fun\u00e7\u00e3o <em>Configurar<\/em> m\u00e9todo em <em>GlimpseLogger<\/em>.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace;\"><\/div>\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace;\">var config <span style=\"color: #008000;\">=<\/span> <a href=\"https:\/\/www.google.com\/search?q=new+msdn.microsoft.com\"><span style=\"color: #008000;\">novo<\/span><\/a> GlimpseLogConfiguration <span style=\"color: #008000;\">{<\/span> IsDebugEnabled <span style=\"color: #008000;\">=<\/span> <span style=\"color: #0600ff; font-weight: bold;\">verdadeiro<\/span> <span style=\"color: #008000;\">}<\/span><span style=\"color: #008000;\">;<\/span><br \/>\nGlimpseLogger<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">Configurar<\/span><span style=\"color: #008000;\">(<\/span>configura\u00e7\u00e3o<span style=\"color: #008000;\">)<\/span><span style=\"color: #008000;\">;<\/span><\/div>\n<\/div>\n<p>Os n\u00edveis de registro s\u00e3o cumulativos, portanto, ativar a depura\u00e7\u00e3o ativa todos os outros n\u00edveis.  Voc\u00ea tamb\u00e9m pode capturar registradores espec\u00edficos (registros por classe) adicionando nomes de registros \u00e0 lista branca.  A configura\u00e7\u00e3o abaixo produzir\u00e1 logs originados somente na classe <em>PooledSocket<\/em> e <em>ConfigHelper<\/em> aulas.<\/p>\n<div class=\"geshifilter\">\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace;\"><\/div>\n<div class=\"csharp geshifilter-csharp\" style=\"font-family: monospace;\">var config <span style=\"color: #008000;\">=<\/span> <a href=\"https:\/\/www.google.com\/search?q=new+msdn.microsoft.com\"><span style=\"color: #008000;\">novo<\/span><\/a> GlimpseLogConfiguration <span style=\"color: #008000;\">{<\/span> IsDebugEnabled <span style=\"color: #008000;\">=<\/span> <span style=\"color: #0600ff; font-weight: bold;\">verdadeiro<\/span> <span style=\"color: #008000;\">}<\/span><span style=\"color: #008000;\">;<\/span><br \/>\nconfigura\u00e7\u00e3o<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">SourceWhiteList<\/span><span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">AddRange<\/span><span style=\"color: #008000;\">(<\/span><a href=\"https:\/\/www.google.com\/search?q=new+msdn.microsoft.com\"><span style=\"color: #008000;\">novo<\/span><\/a><span style=\"color: #008000;\">[<\/span><span style=\"color: #008000;\">]<\/span> <span style=\"color: #008000;\">{<\/span> <span style=\"color: #666666;\">\"PooledSocket\"<\/span>, <span style=\"color: #666666;\">\"ConfigHelper\"<\/span> <span style=\"color: #008000;\">}<\/span><span style=\"color: #008000;\">)<\/span><span style=\"color: #008000;\">;<\/span><br \/>\nGlimpseLogger<span style=\"color: #008000;\">.<\/span><span style=\"color: #0000ff;\">Configurar<\/span><span style=\"color: #008000;\">(<\/span>configura\u00e7\u00e3o<span style=\"color: #008000;\">)<\/span><span style=\"color: #008000;\">;<\/span><\/div>\n<\/div>\n<p>Depois de criar seu aplicativo para incluir a nova guia Couchbase no Glimpse, navegue at\u00e9 uma p\u00e1gina em que o cliente Couchbase esteja sendo usado.  Voc\u00ea dever\u00e1 ver algo semelhante \u00e0 captura de tela abaixo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5305\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2014\/12\/glimpse-300x219.png\" alt=\"\" width=\"300\" height=\"219\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse-300x219.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse-768x561.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse-20x15.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse.png 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Voc\u00ea ver\u00e1 que, quando o cliente est\u00e1 inicializando pela primeira vez, ele \u00e9 um pouco tagarela com os logs de depura\u00e7\u00e3o.  No entanto, se estiver tendo problemas para se conectar ao cluster, provavelmente h\u00e1 informa\u00e7\u00f5es valiosas dispon\u00edveis, inclusive a configura\u00e7\u00e3o do cluster (que pode ser vista como JSON na captura de tela acima).<\/p>\n<p>O GlimpseLogger n\u00e3o mant\u00e9m seus registros, portanto, se voc\u00ea precisar capturar informa\u00e7\u00f5es de diagn\u00f3stico al\u00e9m de uma solicita\u00e7\u00e3o, precisar\u00e1 usar o log4net ou o NLog.<\/p>\n<p>O <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-glimpse\">Reposit\u00f3rio do GitHub<\/a> cont\u00e9m uma c\u00f3pia do aplicativo de amostra de cerveja .NET com o Glimpse ativado.  Clone esse reposit\u00f3rio e execute o aplicativo para ter uma r\u00e1pida no\u00e7\u00e3o de como o plug-in funciona.<\/p>","protected":false},"excerpt":{"rendered":"<p>The .NET Client Library provides detailed error information by way of its IOperationResult interface.\u00a0 To find out why a store operation failed, use ExecuteStore instead of Store. var result = client.ExecuteStore(StoreMode.Add, &#8220;key&#8221;, &#8220;value&#8221;); if (! result.Success) { Console.WriteLine(&#8220;Operation failed with [&hellip;]<\/p>","protected":false},"author":22,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10126],"tags":[],"ppma_author":[8980],"class_list":["post-1718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-dotnet"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>.NET Couchbase Client Instrumentation with ASP.NET and Glimpse - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\".NET Couchbase Client Instrumentation with ASP.NET and Glimpse\" \/>\n<meta property=\"og:description\" content=\"The .NET Client Library provides detailed error information by way of its IOperationResult interface.\u00a0 To find out why a store operation failed, use ExecuteStore instead of Store. var result = client.ExecuteStore(StoreMode.Add, &#8220;key&#8221;, &#8220;value&#8221;); if (! result.Success) { Console.WriteLine(&#8220;Operation failed with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T18:57:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:52:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"584\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"John Zablocki, NET. SDK Developer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Zablocki, NET. SDK Developer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\"},\"author\":{\"name\":\"John Zablocki, NET. SDK Developer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282\"},\"headline\":\".NET Couchbase Client Instrumentation with ASP.NET and Glimpse\",\"datePublished\":\"2014-12-16T18:57:37+00:00\",\"dateModified\":\"2025-06-14T06:52:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\"},\"wordCount\":711,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"ASP.NET\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\",\"name\":\".NET Couchbase Client Instrumentation with ASP.NET and Glimpse - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T18:57:37+00:00\",\"dateModified\":\"2025-06-14T06:52:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\".NET Couchbase Client Instrumentation with ASP.NET and Glimpse\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282\",\"name\":\"John Zablocki, NET. SDK Developer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/201925d9efc4992ce80385b76fdea34b\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g\",\"caption\":\"John Zablocki, NET. SDK Developer, Couchbase\"},\"description\":\"John Zablocki is a NET. SDK Developer at Couchbase. John is also the organizer of Beantown ALT.NET and a former adjunct at Fairfield University. You can also check out the book on Amazon named \\\"Couchbase Essentials\\\" which explains how to install and configure Couchbase Server.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/john-zablocki\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":".NET Couchbase Client Instrumentation with ASP.NET and Glimpse - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/","og_locale":"pt_BR","og_type":"article","og_title":".NET Couchbase Client Instrumentation with ASP.NET and Glimpse","og_description":"The .NET Client Library provides detailed error information by way of its IOperationResult interface.\u00a0 To find out why a store operation failed, use ExecuteStore instead of Store. var result = client.ExecuteStore(StoreMode.Add, &#8220;key&#8221;, &#8220;value&#8221;); if (! result.Success) { Console.WriteLine(&#8220;Operation failed with [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T18:57:37+00:00","article_modified_time":"2025-06-14T06:52:58+00:00","og_image":[{"width":800,"height":584,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2014\/12\/glimpse.png","type":"image\/png"}],"author":"John Zablocki, NET. SDK Developer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Zablocki, NET. SDK Developer, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/"},"author":{"name":"John Zablocki, NET. SDK Developer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282"},"headline":".NET Couchbase Client Instrumentation with ASP.NET and Glimpse","datePublished":"2014-12-16T18:57:37+00:00","dateModified":"2025-06-14T06:52:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/"},"wordCount":711,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["ASP.NET"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/","url":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/","name":".NET Couchbase Client Instrumentation with ASP.NET and Glimpse - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T18:57:37+00:00","dateModified":"2025-06-14T06:52:58+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/net-couchbase-client-instrumentation-aspnet-and-glimpse\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":".NET Couchbase Client Instrumentation with ASP.NET and Glimpse"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/ee312fb775c13d20a32f1d455888a282","name":"John Zablocki, NET. SDK, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/201925d9efc4992ce80385b76fdea34b","url":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","caption":"John Zablocki, NET. SDK Developer, Couchbase"},"description":"John Zablocki is a NET. SDK Developer at Couchbase. John is also the organizer of Beantown ALT.NET and a former adjunct at Fairfield University. You can also check out the book on Amazon named \"Couchbase Essentials\" which explains how to install and configure Couchbase Server.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/john-zablocki\/"}]}},"authors":[{"term_id":8980,"user_id":22,"is_guest":0,"slug":"john-zablocki","display_name":"John Zablocki, NET. SDK Developer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8c5a77152c796c424a3f7f6d9fa31a999a7fe115d64c2acc93c4c0c014e6512a?s=96&d=mm&r=g","author_category":"","last_name":"Zablocki","first_name":"John","job_title":"","user_url":"","description":"John Zablocki \u00e9 um desenvolvedor NET. SDK Developer na Couchbase. John tamb\u00e9m \u00e9 o organizador do Beantown ALT.NET e ex-adjunto da Fairfield University.\r\nVoc\u00ea tamb\u00e9m pode conferir o livro na Amazon chamado \"Couchbase Essentials\", que explica como instalar e configurar o Couchbase Server."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1718"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1718\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1718"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}