Execute メソッドは、.asp ファイルを呼び出し、ASP スクリプトの呼び出しの一部であるかのように処理します。Execute メソッドは、多くのプログラミング言語にあるプロシージャ コールに似ています。
Server.Execute( Path )
Server.Execute メソッドは、複雑なアプリケーションを個別のモジュールに分割する方法を提供します。Server.Execute メソッドを使用すると、必要に応じて呼び出すことができる .asp ファイルのライブラリを作成できます。この方法は、サーバー側インクルードに代わるものです。両者の一番大きな違いは、Server.Execute では .asp ファイルを動的に呼び出すことができるという点です。
Server.Execute の入力パラメータで指定した .asp ファイルが IIS によって処理されると、呼び出し元の ASP スクリプトに応答が返されます。
実行される .asp ページで使用可能なコレクションおよびプロパティは、次のとおりです。
#include によって呼び出し元ページにインクルードしたファイルは、実行される .asp では認識されません。 たとえば、呼び出し元ページにインクルードしたファイルにサブルーチンがあっても、実行される .asp ではそのサブルーチン名が認識されません。 サブルーチンを認識させるには、実行されるそれぞれの .asp にファイルをインクルードする必要があります。
呼び出し元または呼び出し先の .asp ファイルのいずれかに、トランザクション ディレクティブが含まれている場合、トランザクションの状態はディレクティブを含む方の .asp ファイルに適用されます。たとえば、次の例では、ASP1 が ASP2 を呼び出しています。ASP2 の処理中にトランザクションが中止された場合、ASP2 の OnTransactionAbort (存在する場合) が呼び出されます。ASP2 の処理が完了すると、ASP1 の OnTransactionAbort (存在する場合) が呼び出されます。
ASP1:
<%@ Transaction=Required %>
<%
Server.Execute ("ASP2.asp")
Sub OnTransactionAbort
Sub OnTransactionCommit
%>
ASP2.asp:
<%@ Transaction=Required %>
<%
Sub OnTransactionAbort
Sub OnTransactionCommit
%>
次の例では、ブラウザの言語によって実行する .asp ファイルが決定します。英語 (US) システムの場合、スクリプトの出力は次のようになります。
Company Name
Welcome to my website!
ドイツ語システムの場合、スクリプトの出力は次のようになります。
Company Name
Willkommen zu meinem website!
スペイン語システムの場合、スクリプトの出力は次のようになります。
Company Name
Recepci? a mi website!
(コードページに互換性がないため、この例ではマルチバイト系文字の言語は取り上げていません。)
Welcome.asp
<HTML>
<BODY>
<H1>Company Name</H1>
<%
AcceptLang = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
Lang = Left(AcceptLang, 2)
Server.Execute(Lang & "Welcome.asp")
%>
</BODY>
</HTML>
enWelcome.asp
<% Response.Write "Welcome to my website!" %>
deWelcome.asp
<% Response.Write "Willkommen zu meinem website!" %>
esWelcome.asp
<% Response.Write "Recepcion a mi website!" %>
Transfer、OnTransactionAbort、OnTransactionCommit