0

有由 VS 2010 创建的 web 设置项目,当我设置这个项目时一切正常,但是当我检查“修复”选项时,我在安装过程中出错。

MSI 日志文件

Running process 'c:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe' with parameters ' -norestart -sn ""' silently...
Process Call Result Code: '0' Process Exit Code: '1'.
The error indicates that IIS is in 32 bit mode, while this application is a 64 bit application and thus not compatible.
Trying 32 bit version of 'aspnet_regiis.exe'...
Reading registry value Path from key 'HKLM\Software\Microsoft\ASP.NET\4.0.30319.0'...
RESULT Path =
Running process 'c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe' with parameters ' -norestart -sn ""' silently...
Process Call Result Code: '0' Process Exit Code: '1'.
The error indicates that IIS is in 64 bit mode, while this application is a 32 bit application and thus not compatible.

我不明白为什么 32 位和 64 位版本的 aspnet_regii 都与应用程序不兼容?

当我检查“设置”而不是“修复”选项时,路径参数设置为我的应用程序并且设置工作正常,所以也许我必须在我的设置项目中更改某些内容?

顺便说一下,IIS6 设置为 64 位模式;)

谢谢

4

1 回答 1

1

如果您支持 32 位和 64 位系统,则需要对两者分别进行设置。

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

所以你会为系统运行适当的aspnet exe,这可能会解决一些问题。你还没有说你的设置是 x86 还是 x64,所以很难说确切的问题可能是什么。32 位进程无法调用 64 位 Dll(反之亦然),因此 32 位 aspnet_regiis.exe 无法在 64 位 IIS 中调用 64 位程序集,这可能与它有关。

这看起来不像 MSI 日志文件,因为它没有所有信息,例如 MSI (s) (74:1C) [12:14:05:000]: type of intro, plus suff that会告诉您是否正在重定向对 ProgramFiles 文件夹的调用(在日志中查找 WIN64DUALFOLDERS)。

于 2015-02-12T20:16:15.840 回答