如何解决“%1不是有效的Win32应用程序”?

13

环境:
Windows Server 2003 R2 Enterprise 64位版,SP2
.NET框架据说已安装(2.0 SP2、3.0 SP2、3.5 SP1)

我说“据说”是因为它们在“添加/删除程序”中列出为已安装。但我不确定它们是否被正确地安装了,因为在IIS的任何站点中都没有添加“ASP.NET”选项卡。

在IIS Web服务扩展部分,我有“ASP.NET v2.0.50727”(已允许)和“ASP.NET v2.0.50727(32位)”(被禁止)。

相关网站启用了脚本执行功能。

问题:

我创建了一个超级简单的ASP.NET/C#网站:Default.aspx,其中包含一个id为“Label1”的标签和一个带有以下代码的代码后台:Label1.text = "Hello World"; ,但报错信息是:

%1 不是有效的 Win32 应用程序。

6个回答

10

你尝试过运行以下命令吗:

aspnet_regiis -i

从命令行执行?


3
经过一番谷歌搜索,我发现我有两个该可执行文件的副本,一个位于Windows...\Framework\,另一个则在...\Framework64\中。运行Framework64中的那个会提示IIS处于32位模式且不兼容,所以我使用了另一个。执行成功了,但现在我却没有收到相同的错误提示,而是出现了404错误。 - Adam Tuttle
服务器重启后,我最终看到了标准的.NET错误页面,这让我想到需要在IIS中将该文件夹定义为其自己的应用程序。当我完成这个操作后,一切似乎都正常工作了。谢谢! - Adam Tuttle
不过说句实话,在 IIS 中我仍然没有任何网站的 ASP.NET 选项卡。 - Adam Tuttle
4
你是指从命令行执行吗?你特指的是Visual Studio命令提示符吗? - Steve Pitchers

6

同时检查你的应用程序池。在64位环境下,你可能需要在高级设置中设置“启用32位应用程序”。


3

我曾经遇到过“%1 不是有效的 Win32 应用程序”错误消息,因为我的 PATH 环境变量也被搞乱了。其中包含了 Python 安装文件中的垃圾信息:

%PYTHON_HOME%;
%PYTHON_HOME%\Scripts;

2
我遇到了“%1不是有效的Win32应用程序”的错误消息,因为我的PATH环境变量出了问题。更具体地说,PATH本身没有问题。相反,我意外地创建了一个名为“C:\Program”的文件,它被用于路径查找而不是“C:\Program Files \”。这个意外的“C:\Program”文件的创建是因为在命令行上调用Notepad ++编辑C:\Program Files\test.txt(没有引号),所以Notepad ++认为我正在尝试编辑一个名为“C:\Program”的文件,并为我创建了该文件。

1

我遇到了这个问题。我将一个.EXE部署到一个不支持.NET 4.5的Windows 2003上。我使用.NET 4重新构建了程序,然后它就可以工作了。


这里是解释:https://dev59.com/8WQn5IYBdhLWcg3w7ayK#16460035 - Vadzim

1

我在Windows Server 2008 64位上的IIS7遇到了类似的错误。

融合日志对此没有任何帮助,事实证明,在我的情况下,有一个第三方程序集引用了一个32位的程序集或本地dll。(确切地说是Xceed)

查找由64位运行时加载的程序集:

  • 将VS2008调试器附加到与您的应用程序池匹配的w3wp.exe进程
  • 拦截所有异常(菜单调试/异常/选中所有“常见语言运行时异常”)。
  • 确保您的应用程序完全重新加载(通过修改web.config,例如)。
  • 当引发System.BadImageFormatException异常时,请在堆栈跟踪查看器窗口中查找程序集名称。

请记住,放置在bin目录中的所有程序集都会被加载,而不管它们在应用程序中的实际含义如何。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接