Microsoft .NET Framework では、Windows、Web、Internet Explorer ベースの .NET アプリケーションの構成ファイルを指定できます。 これらの構成ファイルには、.NET ランタイム環境に影響を及ぼす設定 (アセンブリのバインドや .NET Remoting の設定など) が含まれます。
Silk Performer の .NET Framework で .NET テスト ドライバを実行すると、Silk Performer Framework アセンブリのロードに必要な設定を使用して perfrun.exe.config と呼ばれる構成ファイルが自動的に作成され、Silk Performer の Web エンジンを経由したルーティングが可能になります。
このような構成ファイルを介してカスタム構成を提供するには、次の 2 つのオプションがあります。
構成ファイルをランタイム時に .NET テスト ドライバにロードする。
自動生成される perfrun.exe.config ファイルにマージされる構成キーを含むプロジェクト ディレクトリで app.config ファイルを作成する。
.NET Class Library には、構成ファイルからロードされる特定の .NET Remoting 設定を構成できるクラスが備えられています。 たとえば、次の構成ファイル スキーマがあるとします。
<configuration> <system.runtime.remoting> <application> <channels> <channel ref="http" port="2000" /> </channels> <client url="http://remoteserver:2000"> <activated type="RemoteDll.RemoteClass1, RemoteDll"/> <activated type="RemoteDll.RemoteClass2, RemoteDll"/> </client> </application> </system.runtime.remoting> </configuration>
これをプロジェクト ディレクトリ内のファイルに保存し、データ ファイル セクションに追加すると、次のコードを使用してランタイム時に (多くの場合、Init トランザクションに対応するメソッドで) ロードできます。
RemotingConfiguration.Configure(Bdl.GetDataFilePath("vuser.config"));
アプリケーション構成ファイルで構成できる他の設定は、System.AppDomain などの .NET Framework の他のクラスで変更できます。 .NET ランタイム環境を変更できるクラスの詳細については、MSDN オンライン リファレンスを参照してください。
Silk Performer .NET Framework を使用してテストを実行すると、仮想ユーザー プロセスでホストされる .NET ランタイムの初期化に使用される構成ファイルが Silk Performer によって自動的に生成されます。 このファイルは perfrun.exe.config と呼ばれ、Silk Performer インストール ディレクトリに保存されます。 このファイルには、次のようなスキーマがあります。
<configuration> <system.net> ... </system.net> <runtime> ... </runtime> </configuration>
この構成ファイルが生成されると、Silk Performer によってプロジェクト ディレクトリ内で app.config ファイルが検索されます。 ファイルが見つかると、ファイルの内容がランタイム ノードの直後にマージされます。 これは、必要な構成 XML 要素を app.config ファイルで定義できることを意味します。 ただし、ルート configuration タグまたは Silk Performer によって生成されるタグ (system.net または runtime) がファイルに存在しないことを確認する必要があります。
次に、.NET Remoting コンポーネントの構成ファイルの例を示します。
<system.runtime.remoting> <application> <channels> <channel ref="http" port="2000" /> </channels> <client url="http://remoteserver:2000"> <activated type="RemoteDll.RemoteClass1, RemoteDll"/> <activated type="RemoteDll.RemoteClass2, RemoteDll"/> </client> </application> </system.runtime.remoting>