指定されたフォルダーにあるにもかかわらず、IIS インストーラーが staxmem.dll をコピーできないのはなぜですか?

指定されたフォルダーにあるにもかかわらず、IIS インストーラーが staxmem.dll をコピーできないのはなぜですか?

Microsoft Web Platform Installer を実行して、IIS5.1 をインストールしようとしています。残念ながら、次のエラーが発生しました。

セットアップはファイル staxmem.dll をコピーできません

以下に指定されている場所が正しいことを確認するか、場所を変更して、指定したドライブに「Windows XP Proffessional Service Pack 3 CD」を挿入します。

c:\windows\ServicePackFiles\i386

今、Windows UpdateからサービスパックをダウンロードしたのでCDを持っていません。Googleで検索して、このサポートページ最初の手順に従いましたが、データベースに問題はなかったので、手順 2 に進みました。残念ながら、ここでも Service Pack CD が必要です。

ハードドライブを検索した結果、ファイルは指定されたディレクトリにあることがわかりました。

では、インストールを進めるにはどうすればよいのでしょうか?

ファイルが既にターゲットの場所に存在し、使用中だからでしょうか? もしそうなら、IIS が既にマシンにインストールされていることを意味します。 その場合、疑問は、なぜ Web プラットフォーム インストーラーは既にインストールされているものをインストールしようとしているのか、ということになります。

答え1

私もこの質問をしましたスーパーユーザー(一部はそこでの私のアカウントを開始するため) そして答えを得ました。これは答えの関連部分です:

そのサポートページは誤解を招きます。ツールがメッセージを返す場合、次のように書かれています。

「この操作により、このデータベースが破損していることが判明する可能性があります」

これは、出力のどこかにそのテキストが含まれていることを意味します。出力はそれだけではありません。出力は 2 番目のサンプルとほぼ同じですが、出力のどこかに上記の行が含まれます。ツールが破損の可能性を検出した場合でも、出力は「整合性チェックが成功しました」と終了されます。

これですべて解決しました。すぐに試すべきだったのですが、サポート ページにはどの解決策が有効かが明確に記載されていました。

答え2

Win2k3 サーバーでこの問題が発生した場合は、ServicePackFiles フォルダーが C:\Windows から削除されたためだと推測します。XP で同じメカニズムが使用されているかどうかはわかりませんが、確認する価値はあります。元のインストールに SP3 が含まれていなかったが、その後 SP3 がインストールされた場合は、ServicePackFiles フォルダーにインストール ファイルの SP3 バージョンが保存されます (staxmem.dll が含まれる可能性があります)。ServicePackFiles フォルダーが見つからない場合、インストーラーは必要なファイルの入力を求めますが、SP3 バージョンしか受け付けません。

SP3 を再インストールしてから、Web プラットフォームのインストールを再度試してください。

JR

答え3

この問題は、secedit.sdb の破損に関連しています。つまり、%windir%\security\database 内の secedit.sdb が破損している可能性があります。

解決

  1. secedit.sdb ファイルのバックアップ コピーを作成します。
  2. コマンド プロンプトを開きます ([スタート]、[実行] の順にクリックし、「cmd」と入力して Enter キーを押します)。
  3. 実行しesentutl /p %windir%\security\database\secedit.sdb て Enter キーを押します。「修復」警告が表示されたら、「OK」をクリックします。修復が完了するまで待ちます。
  4. 「Windows コンポーネントの追加」ダイアログに戻り、指定されたフォルダーが Windows インストール フォルダーであることを確認して、「OK」をクリックします。IIS コンポーネントのインストールは正常に完了するはずです。

関連情報