ActiveX が Scripting.FileSystemObject オブジェクトを作成できないという同様の問題についても、解決策はほぼ同様です。重要なのは、最初にコンポーネントの登録の問題を検討し、次にコンポーネントのアクセス許可の問題を検討することです。サーバーの設定を確認してから、プログラムのソース コードを注意深く確認してください。
今日、ASP Web サイトで静的ページの生成時にエラーが報告されました。
Microsoft VBScript ランタイム エラー エラー '800a01ad'
ActiveX コンポーネントはオブジェクトを作成できません: 'Scripting.FileSystemObject'
実際、この問題は比較的一般的であり、サーバーが FSO コンポーネントをサポートしていないことがエラーの原因です。この状況は、Fengxun、Kexun、Dongyi などの主流の ASP CMS システムでよく発生します。これらはすべて静的生成メカニズムを採用し、FSO コンポーネントのサポートを必要とするためです。開始する前に、まず ASP プローブを使用してサーバーの FSO コンポーネントのサポートをテストする必要があります。通常は Windows 2003 サーバーを使用します。
以下では、私の具体的な解決策のアイデアについて説明し、エラー報告の考えられる原因をそれぞれ分析していきます。お役に立てば幸いです。
1) scrrun.dll ファイルが登録されていません。 C:/WINDOWS/system32 フォルダーに移動し、scrrun.dll ファイルがあるかどうかを確認します。そうでない場合は、システム インストール ディレクトリの i386 フォルダに移動してコピーします。次に、[スタート] メニューから次のコマンドを実行して、FSO コンポーネントを登録します。
regsvr32.exe %windir%/system32/scrrun.dll これにより、サーバーが FSO コンポーネントをサポートできるようになります。FSO コンポーネントをオフにする場合は、次のコマンドを実行します。
regsvr32.exe /u %windir%/system32/scrrun.dll は正常であり、問題は解決されます。
2) それでも動作しない場合は、ブラウザで ActiveX コントロールが無効になっているかどうかを確認してください。サーバーでない限り、セキュリティ レベルが厳しく制限されているため、通常はこのようなことは起こりません。この場合は、ブラウザのセキュリティ レベルを中~低に調整してください。
3) サーバー自体は FSO コンポーネントをサポートしていません。
4) 権限の問題を考慮します。次の操作を順番に実行します。
[スタート] メニュー -> [ファイル名を指定して実行] -> regedit -> [OK] を選択し、HKEY_CLASSES_ROOT/Scripting.FileSystemObject を順に見つけてアクセス許可を右クリックし、Everyone、インターネット ゲスト アカウント (IUSR...) ユーザー アクセス許可を追加し、IIS を再起動して問題を解決します。
5) 添付資料: サーバーが Scripting.Dictionary コンポーネントをサポートしていない問題の解決策
上記の手順により、ActiveX オブジェクトの作成に失敗する問題を完全に解決できます。 Scripting.Dictionary コンポーネントがサポートされていないという問題がまだある場合、解決策は同様であり、最初の手順を参照して、regsvr32.exe %windir%/system32/scrrun.dll コマンドを実行します。まだ解決していない場合は、権限の問題を検討してください。手順 4 を参照して、レジストリ内のこのオブジェクトに権限を追加してください。 1 つの例から推論を導き出し、同様の問題に再び遭遇した場合の解決方法を知ってください。
6) 添付ファイル: Server.CreateObject の失敗に対する解決策。プログラムを実行すると、次のような同様のエラーが表示される場合があります。
サーバー オブジェクト エラー「ASP 0177: 800401f3」
Server.CreateObject が失敗しました
/include/test.asp、38行目のtest.aspを開いて、38行目付近のソースコードを確認し、オブジェクト作成の記述方法に誤りがないか確認する 標準的な記述方法は次のとおりです。
<% Set fso = Server.CreateObject(Scripting.FileSystemObject) %>
この状況は主にプログラマ側の不注意によって引き起こされます。実際、Scripting.FileSystemObject コンポーネントの名前は変更できます。これにより、次のようにレジストリで変更できます。これにより、サーバーのセキュリティが向上します。
[スタート] メニュー -> [ファイル名を指定して実行] -> [regedit] -> [OK] の順に選択し、HKEY_CLASSES_ROOT/Scripting.FileSystemObject を順に見つけ、右クリックして名前を変更し、scrrun.dll ファイルを登録する最初の手順を実行します。プログラムを作成するときは、この新しい名前でオブジェクトを作成する必要があることに注意してください。そうしないと、エラーが報告されます。 7) 付属品: IIS にはコンポーネントが付属しています
これらの問題の原因はすべて IIS 自体のコンポーネントにあることがわかりましたか? 参考までに、いくつかの一般的な IIS コンポーネントを示します。
MSWC.AdRotator
MSWC.ブラウザタイプ
MSWC.ネクストリンク
MSWC.ツール
MSWC.ステータス
MSWC.カウンター
SWC.PermissionChecker
WScript.シェル
Microsoft.XMLHTTP
Scripting.FileSystemObject
ADODB.Connection 要約すると、ActiveX が Scripting.FileSystemObject オブジェクトを作成できないという同様の問題に関して、解決策は一般に同様です。重要なのは、最初にコンポーネントの登録の問題を検討し、次にコンポーネントのアクセス許可の問題を検討することです。サーバー構成に問題はありません。そうであれば、プログラムのソース コードを注意深く確認してください。