Versions Compared

    Key

    • This line was added.
    • This line was removed.
    • Formatting was changed.
    Comment: Published by Scroll Versions from this space and version 20.5

    On this page:

    appdsv-tocbox
    Table of Contents
    maxLevel2

    translation
    languageen
    Appd tocbox

    Related pages:

    The .NET Agent automatically instruments IIS applications only. However, you can follow the instructions in this topic to manually configure the .NET Agent to instrument Windows services or standalone .NET applications.

    Overview

    If your web application is not configured to run as an in-process handler, the application may run as dotnet.exe or mywebappapplication.exe. In this scenario, the application's site name and application path are not discovered automatically. You need to configure these applications manually and provide tier and node names that best describe the application. 

    Before Starting

    To instrument Windows services and standalone .NET applications, you edit the .NET Agent configuration file, config.xml.

    Info

    Instrument the default domain if that is where your application runs, as AppDynamics does not automatically instrument the default domain out of the box. To determine whether you should use the default domain, and how to configure it, see Instrument the DefaultDomain for Standalone Applications.

    Before starting, verify that the services or applications you want to instrument are .NET applications rather than native applications or another type of application. From a command line, run the following command:

    Code Block
    tasklist /m "mscor*"
    Note

    This command only works for 64-bit processes. For 32-bit processes, use the process explorer to view the dependencies of the process and whether there are any .NET .dll files loaded into the file.

    The output lists the processes that have DLLs starting with mscor*, indicative of .NET processes. Processes that are not on the list are not .NET processes and cannot be instrumented with the .NET Agent.

    If you have previously instrumented IIS applications on the server that hosts the Windows services and standalone applications, the server should already have a config.xml file that you can edit. If not, perform the following steps to generate one:

    1. Install the .NET Agent for Windows
    2. Run the AppDynamics Agent Configuration utility. 

    If you want to avoid instrumenting IIS applications, choose the manual tier naming approach and omit the step of assigning tiers for the IIS application. This disables instrumentation for the IIS applications, allowing you to instrument only the intended Windows services or standalone applications. 

     The utility performs these configuration tasks:

    1. Changes the location of the logs directory and assign permissions.
    2. Configures and tests connectivity to the Controller.
    3. Sets the business application for the agent.

    Manually Configure the .NET Agent

    Once you have configured the Controller properties for the .NET Agent, instrument your Windows service or standalone application by adding the Standalone Applications element to the config.xml.

    1. Edit the config.xml file as an administrator. See Administer the .NET Agent

      If you have not instrumented any IIS applications, the file contains the minimal configuration for the Controller connectivity and the machine agent. Verify the Controller properties and the Business Application name, as in the following example:

      No Format
      <?xml version="1.0" encoding="utf-8"?>
      <appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <controller host="mycontroller.example.com" port="8090" ssl="false">
          <application name="My Business Application" />
        </controller>
      ...
      </appdynamics-agent>

      If you have already instrumented IIS applications, those configurations appear under the IIS element.

    2. Add a single standalone applications element, standalone-applications under the app-agents element, and under the standalone-applications element, add a standalone application element, standalone-application for each Windows service or standalone application to instrument. For example:

      No Format
      ...
      <app-agents> 
         ...
         <standalone-applications>
            <standalone-application executable="MyStandaloneApp.exe">
              <tier name="Standalone Tier 1" />
            </standalone-application>
            <!-- Instrument a standalone application using a partial path. -->
            <standalone-application executable="MyApplication\MyOtherStandaloneApp.exe">
              <tier name="Standalone Tier 2" />
            </standalone-application>
            <!-- Instrument a Windows service using arguments. -->
            <!-- The following example matches the command "MyWindowsService.exe -d -x -r". -->
            <standalone-application executable="MyWindowsService.exe" command-line="-x">
               <tier name="Windows Service Tier" />
            </standalone-application>
         </standalone-applications>
      </app-agents>
      ...

      In the standalone application element configuration:

      • Use the tier element to assign the instrumented application to a tier in the Controller. See .NET Agent Configuration Properties.

      • Identify the executable file of the application in the Standalone Application element executable attribute using one of the following formats:

        • Executable name: For example, MyStandaloneApp.exe

    ...

        •  or MyWindowsService.exe. The file extension is optional,

    ...

        • so MyStandaloneApp

    ...

        •  also works. If dotnet.exe is used for starting the .NET Core application, then specify "dotnet.exe" as application executable (see Sample Configuration File for details). 

        • Full or partial path to the executable: For example, C:\Program Files\MyApplication\MyStandaloneApp.exe or MyApplication\MyStandaloneApp.exe.

    ...

        •  Use the full or partial path when you want to assign different AppDynamics tiers to separate instances of the same executable file running from different paths.

        • To differentiate between two instances of the same executable, specify any unique portion of the command line invocation format of the application, such as an argument, in the Standalone Application command-line attribute.

        Tip

        You can discover the path to a Windows service executable in the Services panel of the administrative tools. In Services, click on the service and choose Properties. The path appears in the General tab.

    1. Restart the AppDynamics.Agent.Coordinator service.

    2. Restart the Windows service or standalone application.

    3. If your Windows service or standalone application does not implement an auto-detected framework, you must configure a POCO entry point for a class/method in your service for the agent to begin instrumentation.

    Sample Configuration File

    This sample config.xml demonstrates instrumentation for a Windows service and standalone application:

    No Format
    <?xml version="1.0" encoding="utf-8"?>
    <appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <controller host="mycontroller.mycompany.com" port="8090" ssl="false">
        <application name="My Business Application" />
      </controller>
      <machine-agent />
      <app-agents>
        <IIS>
            <applications />
        </IIS>
        <standalone-applications>
            <standalone-application executable="MyWindowsService.exe" command-line="-x">
               <tier name="Windows Service Tier" />
            </standalone-application>
            <standalone-application executable="MyStandaloneApp.exe">
               <tier name="Standalone Tier" />
            </standalone-application>
        </standalone-applications>
      </app-agents>
    </appdynamics-agent>

    If the .Net Core application is published as executable, then it can be configured similar to .NET Framework applications by specifying the executable name and optionally the command line. However, if the application is published as a library, then it is started by invoking the dotnet.exe tool. 

    The following sample configuration demonstrates how to instrument a .NET Core standalone application hosted by the dotnet.exe :

    No Format
    <?xml version="1.0" encoding="utf-8"?>
    <appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <controller host="mycontroller.mycompany.com" port="8090" ssl="false">
        <application name="My Business Application" />
      </controller>
      <machine-agent />
      <app-agents>
        <IIS>
            <applications />
        </IIS>
        <standalone-applications>
            <standalone-application executable="dotnet.exe" command-line="MyApp.dll"> //command-line option instructs the agent to monitor only "MyApp" 
               <tier name="DotNet Core Tier" />
            </standalone-application>
          </standalone-applications>
      </app-agents>
    </appdynamics-agent>

    Troubleshooting

    Intermittent Loss of Windows Services Instrumentation

    When instrumenting Windows Services, there may be cases where the instrumented service initializes before the AppDynamics.Agent.Coordinator service.  When this happens the Profiler shuts down and no instrumentation happens. This problem may present intermittently and is not common. 

    The following describes the procedures required to overcome this problem for Windows 2012 and later, and for Windows 2008.

    Windows 2012 and later

    To ensure the AppDynamics.Agent.Coordinator service initializes before the instrumented Windows Service, modify the registry as follows:

    Edit the Reg key EarlyStartServices @HKLM:\SYSTEM\CurrentControlSet\Control and add AppDynamics.Agent.Coordinator_service to the list of early start services.

    Image Modified

    Windows 2008

    If you are using Windows 2008, please contact AppDynamics Support for assistance.

    Troubleshooting

    Intermittent Loss of Windows Services Instrumentation

    When instrumenting Windows Services, there may be cases where the instrumented service initializes before the AppDynamics.Agent.Coordinator service.  When this happens the Profiler shuts down and no instrumentation happens. This problem may present intermittently and is not common. 

    The following describes the procedures required to overcome this problem for Windows 2012 and later, and for Windows 2008.

    Windows 2012 and later

    To ensure the AppDynamics.Agent.Coordinator service initializes before the instrumented Windows Service, modify the registry as follows:

    ...

    Sv translation
    languageja
    Appd tocbox

    Related pages:

    .NET エージェントは、IIS アプリケーションのみを自動的にインストゥルメント化します。ただし、このトピックで説明されている手順に従って、Windows サービスやスタンドアロン .NET アプリケーションをインストゥルメント化するように .NET エージェントを手動で構成することもできます。

    はじめに

    Windows サービスとスタンドアロン .NET アプリケーションをインストゥルメント化するには、.NET エージェント構成ファイル config.xml を編集します。

    Info

    AppDynamics では、初期設定ではデフォルトのドメインを自動的にはインストゥルメント化しないため、デフォルトドメインでアプリケーションを実行する場合は、そのドメインをインストゥルメント化します。デフォルトドメインを使用する必要があるかどうか、およびその構成方法を判断するには、「Instrument the DefaultDomain for Standalone Applications」を参照してください。

    開始する前に、インストゥルメント化するサービスまたはアプリケーションがネイティブアプリケーションや別のタイプのアプリケーションではなく、.NETアプリケーションであることを確認します。コマンドラインから、以下のコマンドを実行します。

    Code Block
    tasklist /m "mscor*"
    Note

    このコマンドは、64 ビットプロセスでのみ動作します。32 ビットプロセスの場合は、Process Explorer を使用して、プロセスの依存関係と、ファイルにロードされた .NET .dll ファイルがあるかどうかを確認します。

    出力には、mscor* で始まる dll を使用しているプロセスがリストされます。これは、.NET プロセスを示しています。リストに含まれていないプロセスは .NET プロセスではないため、.NET エージェントではインストゥルメント化できません。

    Windows サービスとスタンドアロン アプリケーションをホストするサーバで、以前 IIS アプリケーションのインストゥルメント化を行っている場合、サーバにはすでに編集可能な config.xml ファイルがあるはずです。ない場合は、次の手順に従ってファイルを生成します。

    1. Install the .NET Agent for Windowsを使用して無効にすることができます。 
    2. AppDynamics エージェント構成ユーティリティを実行します。 

    IISアプリケーションをインストゥルメント化しない場合は、ティアの手動命名方式を選択して、IISアプリケーションのティアを割り当てる手順を省略します。これにより IIS アプリケーションのインストゥルメンテーションが無効化され、対象の Windows サービスまたはスタンドアロン アプリケーションのみをインストゥルメント化できるようになります。 

    ユーティリティにより次の構成タスクが実行されます。

    1. ログディレクトリのロケーションと割り当て権限を変更します。
    2. コントローラへの接続を構成およびテストします。
    3. エージェント用ビジネスアプリケーションを設定します。

    .NETエージェントの手動構成

    .NET エージェントのコントローラプロパティを構成すると、スタンドアロン アプリケーション エレメントを config.xml に追加することで Windows サービスまたはスタンドアロン アプリケーションのインストゥルメント化が実行されます。

    1. 管理者として config.xml ファイルを編集します。詳細については、Administer the .NET Agentを参照してください。 

      IIS アプリケーションのインストゥルメント化を行ったことがない場合、ファイルにはコントローラ接続とマシンエージェント用の最小構成が含まれています。次の例のように、コントローラのプロパティとビジネスアプリケーション名を確認します。

      No Format
      <?xml version="1.0" encoding="utf-8"?>
      <appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <controller host="mycontroller.example.com" port="8090" ssl="false">
          <application name="My Business Application" />
        </controller>
      ...
      </appdynamics-agent>

      すでにIISアプリケーションのインストゥルメンテーションを行っている場合は、上記の構成がIISエレメントの下に表示されます。

    2. app-agents エレメントで単体のスタンドアロン アプリケーション エレメント(standalone-applications)を追加し、standalone-applications エレメントで、インストゥルメント化を行う各 Windows サービスまたはスタンドアロン アプリケーションのスタンドアロン アプリケーション エレメント(standalone-application)を追加します。例:

      No Format
      ...
      <app-agents> 
         ...
         <standalone-applications>
            <standalone-application executable="MyStandaloneApp.exe">
              <tier name="Standalone Tier 1"/>
            </standalone-application>
            <!-- Instrument a standalone application using a partial path. -->
            <standalone-application executable="MyApplication\MyOtherStandaloneApp.exe">
              <tier name="Standalone Tier 2"/>
            </standalone-application>
            <!-- Instrument a Windows service using arguments. -->
            <!-- The following example matches the command "MyWindowsService.exe -d -x -r". -->
            <standalone-application executable="MyWindowsService.exe" command-line="-x">
               <tier name="Windows Service Tier"/>
            </standalone-application>
         </standalone-applications>
      </app-agents>
      ...

      スタンドアロンアプリケーションエレメント構成で次を実行します。

      • tier エレメントを使用して、インストゥルメント化されたアプリケーションをコントローラのティアに割り当てます。詳細については、.NET Agent Configuration Propertiesを参照してください。

      • 次の形式のいずれかを使用して、スタンドアロン アプリケーション エレメントの executable 属性でアプリケーションの実行可能ファイルを指定します。

        • 実行可能ファイル名:たとえば、MyStandaloneApp.exe や MyWindowsService .exe。ファイル拡張子はオプションであるため MyStandaloneApp も同様に機能します。

        • 実行可能ファイルへのフルパスまたは部分パス:たとえば、C:\Program Files\MyApplication\MyStandaloneApp.exe MyApplication\MyStandaloneApp.exe異なるパスから実行される同じ実行可能ファイルのインスタンスごとに異なる AppDynamics ティアを割り当てる場合は、フルパスまたは部分パスを使用します。
        • 同じ実行可能ファイルの 2 つのインスタンスを区別するには、スタンドアロン アプリケーションのコマンドライン属性でアプリケーションのコマンドライン呼び出し形式の独自の部分(引数など)を指定します。

        Tip

        管理ツールのサービスパネルでWindowsサービスの実行ファイルへのパスを確認できます。Services で、そのサービスをクリックし、Properties を選択します。パスが Generalタブに表示されます。

    3. AppDynamics.Agent.Coordinator サービスを再起動します。

    4. Windowsサービスまたはスタンドアロンアプリケーションを再起動します。

    5. Windows サービスまたはスタンドアロン アプリケーションで自動検出フレームワークが実装されていない場合は、エージェントがインストゥルメンテーションを開始するために、サービス内のクラス/メソッドの POCO エントリポイントを構成する必要があります。

    構成ファイルのサンプル

    このサンプルの config.xml は、Windows サービスおよびスタンドアロン アプリケーションのインストゥルメンテーションを示しています。

    No Format
    <?xml version="1.0" encoding="utf-8"?>
    <appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <controller host="mycontroller.mycompany.com" port="8090" ssl="false">
        <application name="My Business Application" />
      </controller>
      <machine-agent />
      <app-agents>
        <IIS>
            <applications />
        </IIS>
        <standalone-applications>
            <standalone-application executable="MyWindowsService.exe" command-line="-x">
               <tier name="Windows Service Tier" />
            </standalone-application>
            <standalone-application executable="MyStandaloneApp.exe">
               <tier name="Standalone Tier" />
            </standalone-application>
        </standalone-applications>
      </app-agents>
    </appdynamics-agent>

    トラブルシューティング

    断続的な Windows サービスのインストゥルメンテーションの消失

    Windows サービスをインストゥルメント化するときに、インストゥルメント化されたサービスが AppDynamics.Agent.Coordinator サービスの前に初期化される場合があります。これが発生すると、プロファイラがシャットダウンし、インストゥルメント化が実行されません。この問題は断続的に発生する可能性があり、一般的ではありません。 

    次に、Windows 2012 以降、および Windows 2008 でこの問題を解決するために必要な手順について説明します。

    Windows 2012 and later

    インストゥルメント化された Windows サービスの前に AppDynamics.Agent.Coordinator サービスを初期化するには、次のようにレジストリを変更します。

    Reg キー EarlyStartServices @HKLM:\SYSTEM\CurrentControlSet\Control

    ...

    を編集し、AppDynamics.Agent.Coordinator_

    ...

     

    service  を初期の開始サービスのリストに追加します。

    Image Added

    Windows 2008

    Windows 2008 を使用している場合は、AppDynamics サポートにお問い合わせください。