2017-09-26 11 views
0

클라우드에서 실행되는 웹 앱 앱 통찰력에 의해 수집되지 역할 속성에서 "응용 프로그램 통찰력에 진단 데이터를 전송하지"및 CS에 응용 프로그램을 게시 검사 standard installation guide from MicrosoftSQL 명령 텍스트는 이어 서비스

  • - 수집 더 요청 데이터를 조금도.
  • SDK를 프로젝트에 추가하고 요청 데이터를 다시 업로드했지만 모든 SQL 종속성은 완전히 쓸모없는 "명령 텍스트"- "서버 이름 | 데이터베이스 이름"으로 수집되었습니다.

그러나 Azure 상태 모니터가 설치된 경우 로컬 IIS에서 동일한 응용 프로그램에 대해 SQL 명령이 추적됩니다.

RDP를 통해 서버에 연결되었으며 AI Status Monitor가 Azure PaaS Diagnostics 플러그인에 의해 성공적으로 설치되었지만 W3SVC 용 COR_PROFILER로 등록되지 않은 것으로 보입니다. 따라서 실제로 아무것도하지 않습니다.

클라우드 서비스에 대한 전체 SQL 명령 추적을 가능하게하는 특정 구성 스위치가 있습니까?

답변

0

그것은 가능 "응용 프로그램 통찰력에 진단 데이터를 보내기"프로젝트 에 SDK를 추가하는해야한다는 것 의존성 데이터를 수집하기에 충분합니다.

그러나 Azure Cloud Service PaaS 진단 플러그인 v1.10.1.1에 포함 된 상태 모니터의 현재 설치 관리자는 이 (가)으로 잘못되었습니다. 나는 플러그인의 이전 버전 (v.1.10.0.0)에서 설치 프로그램을 시도 - 그리고 그것은 완벽하게 작동합니다. 플러그인의 최신 버전에서 \ StatusMonitor \ ApplicationInsightsAgent.msi 실행

다음과 같은 예외를 기록

Calling custom action CustomActions!CustomActions.CustomActions.SetEnvironmentVariables 
Error: could not load custom action class CustomActions.CustomActions from assembly: CustomActions 
System.IO.FileLoadException: Could not load file or assembly 'CustomActions, Version=2.4.0.18059, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) 
File name: 'CustomActions, Version=2.4.0.18059, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A) 

내가 풀었 그 CustomActions.dll 및 SN 통해 대한 강력한 이름을 확인.

sn.exe -vf CustomActions.dll 

CustomActions.dll is a delay-signed or test-signed assembly 
v1.10.0.0에서 CustomActions.dll에 대한

같은 검사는

Assembly 'CustomActions.dll' is valid 

은 분명히, MS에서 누군가가 릴리스 전에 그 DLL을 서명하는 것을 잊었다 보여줍니다, 그래서 상태 모니터는 더 이상 제대로 CS에 설치되어 있지 않습니다 VM. MS 지원 팀에 알려 주시면 조만간 해결 될 수 있기를 기대합니다.


W3SVC가 아직 시작되지 않은 상태 해결 방법은 수동으로 역할의 시작에 레지스트리 키 누락 추가 수 : 유형 다중 문자열 값의

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\@Environment 

COR_ENABLE_PROFILING=1 
COR_PROFILER={324F817A-7420-4E6D-B3C1-143FBED6D855} 
MicrosoftInstrumentationEngine_Host={CA487940-57D2-10BF-11B2-A3AD5A13CBC0} 

원시 reg 파일은 다음과 같습니다.

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC] 
"Environment"=hex(7):43,00,4f,00,52,00,5f,00,45,00,4e,00,41,00,42,00,4c,00,45,\ 
    00,5f,00,50,00,52,00,4f,00,46,00,49,00,4c,00,49,00,4e,00,47,00,3d,00,31,00,\ 
    00,00,43,00,4f,00,52,00,5f,00,50,00,52,00,4f,00,46,00,49,00,4c,00,45,00,52,\ 
    00,3d,00,7b,00,33,00,32,00,34,00,46,00,38,00,31,00,37,00,41,00,2d,00,37,00,\ 
    34,00,32,00,30,00,2d,00,34,00,45,00,36,00,44,00,2d,00,42,00,33,00,43,00,31,\ 
    00,2d,00,31,00,34,00,33,00,46,00,42,00,45,00,44,00,36,00,44,00,38,00,35,00,\ 
    35,00,7d,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,49,\ 
    00,6e,00,73,00,74,00,72,00,75,00,6d,00,65,00,6e,00,74,00,61,00,74,00,69,00,\ 
    6f,00,6e,00,45,00,6e,00,67,00,69,00,6e,00,65,00,5f,00,48,00,6f,00,73,00,74,\ 
    00,3d,00,7b,00,43,00,41,00,34,00,38,00,37,00,39,00,34,00,30,00,2d,00,35,00,\ 
    37,00,44,00,32,00,2d,00,31,00,30,00,42,00,46,00,2d,00,31,00,31,00,42,00,32,\ 
    00,2d,00,41,00,33,00,41,00,44,00,35,00,41,00,31,00,33,00,43,00,42,00,43,00,\ 
    30,00,7d,00,00,00,00,00 
0

this article에서 Application Insights SDK 만 웹 응용 프로그램 프로젝트에 추가 된 경우 종속성 진단은 기본적으로 SQL 명령 텍스트를 수집하지 않습니다.

enter image description here

그리고 따라 설명을, installing Application Insights Status Monitor는 SQL 명령 텍스트를 수집 도움이되지 것 같다. 가능한 경우 write code to send dependency information을 사용하여 TrackDependency을 시도하면 다음 코드가 유용합니다. 참고하시기 바랍니다.

var startTime = DateTime.UtcNow; 

var timer = System.Diagnostics.Stopwatch.StartNew(); 
try 
{ 
    SqlConnection con = new SqlConnection("{connect_string}"); 

    commendtext = "SELECT COUNT(1) FROM dbo.AspNetUsers"; 

    SqlCommand com = new SqlCommand(commendtext, con); 

    con.Open(); 

    int n = (int)com.ExecuteScalar(); 

    con.Close(); 

    success = n > 0 ? true : false; 

} 
finally 
{ 
    timer.Stop(); 
    telemetry.TrackDependency("SQL", "SQL: tcp:{server_name}.database.windows.net,1433 | {database_name}", ":{server_name}.database.windows.net", commendtext, startTime, timer.Elapsed, "{result_code}", success); 
} 

응용 프로그램 통찰력 포털 세부 SQL 명령 텍스트

enter image description here

+0

설치 중 상태 모니터는 내 로컬 컴퓨터에서 도움이됩니다. 상태 모니터는 하늘색 인프라에 의해 클라우드 서비스 VM에도 설치되지만 설정이 불완전한 것으로 보입니다. 상태 모니터의 일부 불완전한 설치 때문에 전체 응용 프로그램을 수동으로 계측하려면 많은 작업이 필요하며 EF를 통해 수행 한 쿼리에는 도움이되지 않습니다. ( – PashaPash

+0

MS에서 사전 구성하기 위해 사용하는 상태 모니터의 잘못된 설치 프로그램으로 문제를 추적합니다. 클라우드 서비스가 가능한 회피 방법을 답으로 올렸습니다. – PashaPash