7

समुदायएएसपी एपीआई कोर

के साथ एप्लिकेशन अंतर्दृष्टि का उपयोग करें मुझे अपने एएसपी वेब एपीआई कोर में एप्लिकेशन अंतर्दृष्टि कनेक्ट करने में समस्याएं आ रही हैं। मानक मैनुअल के बाद भी मुझे अपने AppInsights खाते में कोई रिकॉर्ड नहीं मिल रहा है। मैंने बहुत सारे मैनुअल का उपयोग किया, लेकिन यह बहुत समान हैं और एएसपी कोर (एपीआई कोर नहीं) के लिए ऐप अंतर्दृष्टि को कॉन्फ़िगर करने का वर्णन करते हैं। तो मुझे आश्चर्य है कि कुछ विशेष कॉन्फ़िगरेशन (या nuget पैकेज या जो कुछ भी) को मेरी एपीआई सेवा में ऐपइन्सट ट्रैक अनुरोध करने की आवश्यकता है?

एक बार जब मैं ऐपइन्सट्स बॉक्स से बाहर नहीं कर सकता, तो भी मैं टेलीमेट्री क्लाइंट का उदाहरण बना सकता हूं और मैन्युअल रूप से डेटा प्रकाशित कर सकता हूं, लेकिन यह मेरे मामले में वांछनीय नहीं है।

महत्वपूर्ण नोट: Startup.cs में

<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web"> 
    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp1.0</TargetFramework> 
    <PreserveCompilationContext>true</PreserveCompilationContext> 
    </PropertyGroup> 
    <ItemGroup> 
    <ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0-msbuild1-update1" /> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild1-final" /> 
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild2-update1" /> 
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0-msbuild1-update1" /> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild1-final" /> 
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild2-update1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.2.0" /> 
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild1-final" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="1.0.3" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0-msbuild2-final" /> 
    <PackageReference Include="Microsoft.NETCore.App" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Routing" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel.Https" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.0.1" /> 
    <PackageReference Include="Microsoft.Extensions.Logging" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.0" /> 
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="1.0.1" /> 
    <PackageReference Include="Newtonsoft.Json" Version="9.0.1" /> 
    <PackageReference Include="Swashbuckle.SwaggerGen" Version="6.0.0-beta901" /> 
    <PackageReference Include="Swashbuckle.SwaggerUi" Version="6.0.0-beta901" /> 
    </ItemGroup> 
</Project> 

विन्यास::

मैं वी.एस. 2017 आर सी, वेब API मुख्य परियोजना (csproj)

युपीडी

csproj फ़ाइल सामग्री का उपयोग कर रहा

public class Startup 
    { 
     public Startup(IHostingEnvironment env) 
     { 
      var builder = new ConfigurationBuilder() 
       .SetBasePath(env.ContentRootPath) 
       .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
       .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

      if (env.IsDevelopment()) 
      { 
       // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately. 
       builder.AddApplicationInsightsSettings(true); 
      } 

      builder.AddEnvironmentVariables(); 

      Configuration = builder.Build(); 
     } 

     public IConfigurationRoot Configuration { get; } 

     // This method gets called by the runtime. Use this method to add services to the container. 
     public void ConfigureServices(IServiceCollection services) 
     { 
      services.AddMvc(); 

      services.AddApplicationInsightsTelemetry(Configuration); 
     } 

     // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      if (env.IsDevelopment()) 
      { 
       app.UseDeveloperExceptionPage(); 
      } 

      loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
      loggerFactory.AddDebug(LogLevel.Trace); 
      loggerFactory.AddConsole(LogLevel.Error); 

      app.UseApplicationInsightsExceptionTelemetry(); 

      app.UseMvc(); 
     } 
+0

में एक अनुभाग के रूप में शामिल करें बस FYI: एएसपी.नेट वेब एपीआई कोर जैसी कोई चीज़ नहीं है। एमवीसी और वेब एपीआई को एएसपी.नेट कोर एमवीसी में विलय कर दिया गया है। क्या आप हमें लॉगिंग और अपनी csproj फ़ाइल के साथ कुछ कोड दिखा सकते हैं? –

उत्तर

12

ट्रैक करने के लिए शुरू हो गया है बदल गया है, तो पुराने निर्देश गलत हैं, क्योंकि वे पिछले के लिए कर रहे हैं xproj आधारित asp.net कोर कार्यान्वयन।

आप एक नई asp.net कोर वेब VS2017 में परियोजना बनाते हैं, तो ApplicationInsights पहले से ही शुरू से ही स्थापित किया जाएगा, और होना चाहिए संस्करणों:

<PackageReference Include="Microsoft.ApplicationInsights" Version="2.2.0" /> 
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" /> 

(या नए, अगर एएसपी। शुद्ध कोर टीम उन्हें बिल्कुल भी अपडेट किया गया है)

उन परियोजनाओं को पहले से ही है आवेदन इनसाइट्स के साथ-साथ, नहीं Startup.cs (कि पुराने तरीका है) में है, लेकिन Program.cs में तार होगा:

new WebHostBuilder() 
    ... 
    .UseApplicationInsights() // this starts up appinsights in asp.net core now 
    ... 
    .UseOtherThings(); 
वेब टेम्पलेट्स में

और संभवतः, जैसे:

@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet 
शीर्ष पर

, और

@Html.Raw(JavaScriptSnippet.FullScript) 

<head> टैग के नीचे के अंदर।

यदि आप एएसपी के पिछले संस्करण से माइग्रेट कर रहे हैं।शुद्ध कोर और ऐप की जानकारी, आप यह सब भी दूर करने के लिए होगा:

@Html.ApplicationInsightsJavaScript(TelemetryConfiguration) 
_Layout.cshtml से

और उनके ऊपर लाइनों के साथ की जगह है, और आप लाइनों के सभी को हटा सकते हैं की तरह:

एप्लिकेशन .UseApplicationInsightsExceptionTelemetry();

Startup.cs में

(आप पैकेज की 2.x संस्करणों का उपयोग कर रहे हैं, मैं उन वस्तुओं सभी शो प्रतिवाद चेतावनी होगा और साथ ही विश्वास करते हैं, के रूप में वे अब जरूरत हो)

VS2017 की आधिकारिक रिलीज नोट्स इस जानकारी को "known issues" for application insights

+0

एक एमवीसी वेब एपीआई (वीएस2017 वेब एपीआई प्रोजेक्ट/एमवीसी कोर 1.1) के लिए, क्या यह सिर्फ appsettings.json में इंस्ट्रुमेंटेशनकी जोड़ने का मामला है? – Dhanuka777

+2

यदि आपने इसे वीएस2017 में बनाया है, तो हां, एआई को पहले से ही प्रोजेक्ट में शामिल किया जाना चाहिए और आपको इसे ऐपेट सेट करना होगा, या तो इसे appsettings.json में हाथ से सेट करके, या प्रोजेक्ट पर दायाँ क्लिक करके, कॉन्फ़िगर करें 'कॉन्फ़िगर करें' एप्लिकेशन अंतर्दृष्टि 'और इसे सेट अप करने के लिए यूआई है। –

+0

इस खोज के घंटों के बाद अंत में मुझे ऐप इनसाइट्स एज़ूर में एक Asp.Net कोर वेब एपीआई एप्लिकेशन के लिए काम करने की अनुमति मिली - बहुत धन्यवाद। – TonE

0

इस समस्या को हल किया गया है article

वहाँ 2 अंक मैं अपने विन्यास में याद किया हैं:
1. csproj में संदर्भित किया जाना चाहिए पैकेज "Microsoft.ApplicationInsights.AspNetCore" संस्करण = "2.0.0-beta1"
2. वर्ग स्टार्टअप में, विधि विन्यस्त करें मैं ऐप जोड़ने के लिए चूक गया। उपयोग आवेदन InsightsRequestTelemetry();

जब मैं क्या AppInsights ऊपर वर्णित आप VS2017 में 'नई' asp.net कोर उपयोग कर रहे हैं सभी अनुरोधों

+0

मैंने कहीं पढ़ा है कि हमें 'Program.cs' विधि का उपयोग करना होगा, न कि इसे जोड़ने के लिए' कॉन्फ़िगर करें 'विधि। मैं उन्हें दोनों में था और टेलीमेट्री डबल हो रहा था। – nhwilly

संबंधित मुद्दे