“%1は有効なWin32アプリケーションではありません”を解決するにはどうすればよいですか?
-
06-07-2019 - |
質問
環境:
Windows Server 2003 R2 Enterprise 64ビット、SP2
.NET frameworkがインストールされていると思われます(2.0 SP2、3.0 SP2、3.5 SP1)
「おそらく」と言うこれらは、[プログラムの追加と削除]の下にインストール済みとして表示されるためです。 " ASP.NET"がインストールされているため、正しくインストールされているかわかりませんタブはIISのどのサイトにも追加されません。
IIS Webサービス拡張セクションには、「ASP.NET v2.0.50727」と(許可)、および「ASP.NET v2.0.50727(32ビット)」 (禁止)。
問題のサイトではスクリプト実行が有効になっています。
問題:
ラベルid =" Label1"の非常にシンプルなASP.NET/C# WebサイトDefault.aspxと、次のコードビハインドを作成しました: Label1.text =" Hello World&quot ;;
でエラーが表示されます:
%1は有効なWin32アプリケーションではありません。
解決
実行してみましたか:
aspnet_regiis -i
コマンドラインから
他のヒント
アプリケーションプールも確認します。 64ビット環境では、「32ビットアプリケーションを有効にする」を設定する必要がある場合があります。詳細設定で。
"%1は有効なWin32アプリケーションではありませんでした。" PATH環境変数も台無しになったため、エラーメッセージが表示されます。 Pythonインストールからのこのゴミが含まれていました:
%PYTHON_HOME%;
%PYTHON_HOME%\Scripts;
Windows Server 2008 64ビット上のIIS7で同様のエラーが発生しました。
ここで融合ログは役に立たず、私の場合、32ビットのみのアセンブリまたはネイティブdllを参照していたサードパーティアセンブリがあることがわかりました。 (正確に確認してください)
64ビットランタイムによってロードされているアセンブリを見つけるには:
- アプリケーションプールに一致する w3wp.exe プロセスにVS2008デバッガーを接続します
- すべての例外をインターセプトします(メニューデバッグ/例外/すべての" 共通言語ランタイム例外をチェック")。
- (たとえばweb.configを変更して)アプリケーションが完全にリロードされていることを確認してください。
- System.BadImageFormatException 例外が発生した場合、スタックトレースビューアーウィンドウでアセンブリ名を探します。
アプリケーションでの実際の意味に関係なく、binディレクトリに配置されたすべてのアセンブリがロードされることを思い出してください。
"%1は有効なWin32アプリケーションではありませんでした。" PATH環境変数が台無しになったため、エラーメッセージが表示されます。もっと具体的に言うと、PATH自体には何も問題はありませんでした。代わりに、" C:\ Program"という名前のファイルを誤って作成しました。 " C:\ Program Files \"の代わりに使用されたパス検索用。 " C:\ Program"の偶発的な作成C:\ Program Files \ test.txt(引用符なし)のコマンドラインでNotepad ++を呼び出した結果だったため、Notepad ++は" C:\ Program"というファイルを編集しようとしていると考えました。ファイルを作成してくれました。
この問題がありました。 .NET 4.5をサポートしないWindows 2003に.EXEを展開しました。 .NET 4でプログラムを再構築しましたが、動作しました。