“%1は有効なWin32アプリケーションではありません”を解決するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/185042

質問

環境:
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でプログラムを再構築しましたが、動作しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top