忽略不允许的属性 IISMAJORVERSION 和“EnableUserControl"? [英] Ignoring disallowed property IISMAJORVERSION and 'EnableUserControl'?
问题描述
我的安装程序包在我的机器上运行,但在我同事的机器上失败.查看日志,我可以看到在 ExecuteAction 短语期间没有保留一些属性值:在他的安装程序日志文件中很少有 Ignoring disallowed property
行,并且这些属性在 UISequence 期间设置为正确的值.奇怪的是,我们都是本地机器上的管理员用户,他也是域管理员,而我不是,而且我们都在 Windows 7 64 位上.所以我不认为这是因为他没有管理员权限.
日志文件中的确切条目:
MSI (s) (3C:50) [09:14:16:583]:忽略不允许的属性 IISMAJORVERSIONMSI (s) (3C:50) [09:14:16:583]:忽略不允许的属性 IISMINORVERSIONMSI (s) (3C:50) [09:14:16:583]:忽略不允许的属性 WCF_SRV_INSTALL_FOLDERMSI (s) (3C:50) [09:14:16:583]:忽略不允许的属性 TARGETDIR
一个简单的解决方法是将所有这些属性标记为 Secure
,但我的代码中没有定义诸如 IISMAJORVERSION
之类的属性.我发现我可以将 EnableUserControl
设置为 1
以使 Ignoring disallowed property
消失.另一种解决方案是创建我自己的安全属性并将我需要的任何被忽略的属性值复制到我自己的属性中并读取它们而不是被忽略的属性.
之后我发现在他的安装程序日志中有一个条目 Machine policy value 'EnableUserControl' is 0
,但在我的日志中没有,这似乎指向设置 EnableUserControl
to 1
可能是我需要的.那么问题来了,那两台机器为什么会有不同的值?
所以我的第一个问题是:将 EnableUserControl
设置为我的解决方案的一个很好的解决方案,或者可能有更好/更安全的解决方案,因为我似乎只找到了症状但没有找到原因?>
或者,如果 EnableUserControl
似乎是给定信息的合理修复,任何建议都可以帮助我追踪问题的原因(可能是管理员更改了注册表项值?).>
我不认为我的安装程序有什么特别之处,但如果有人想查看更多详细信息:
正如 PhilDW 所指出的,这些属性可能应该从一开始就被标记为 Secure
.但是,由于 UAC,不应该将所有属性都标记为 Secure
,如果可能的话,我认为将属性定义为不是 Secure
没有多大意义被别人使用?
我很确定你是否定义它们并不重要 - 尝试将它们标记为安全.
My installer package works on my machine but failed on my colleague's machine. Looking at the log, I can see a few properties values are not persisted during ExecuteAction phrase: there are few Ignoring disallowed property
lines in his installer log file and those properties are set with the right value during UISequence. The strange thing is that we are both Admin user on local machines he is and Domain Admin as well while I am not, and we are both on Windows 7 64bit. So I don't think it is because he don't have Administrator rights.
The exact entries in the log file:
MSI (s) (3C:50) [09:14:16:583]: Ignoring disallowed property IISMAJORVERSION
MSI (s) (3C:50) [09:14:16:583]: Ignoring disallowed property IISMINORVERSION
MSI (s) (3C:50) [09:14:16:583]: Ignoring disallowed property WCF_SRV_INSTALL_FOLDER
MSI (s) (3C:50) [09:14:16:583]: Ignoring disallowed property TARGETDIR
A easy fix would be mark all those properties as Secure
, but properties such as IISMAJORVERSION
are not defined in my code. I discovered that I can set EnableUserControl
to 1
to make Ignoring disallowed property
go away. Another solution would be create my own security properties and copy whatever ignored property value I need into my own properties and read them instead of the ignored property.
After that I discovered there is an entry Machine policy value 'EnableUserControl' is 0
in his installer log, but not in my log, which seems point to set EnableUserControl
to 1
is probably what I need. In that case, the question is why there are different values from those two machines?
So my number one question would be: is set EnableUserControl
a good fix for my solution, or there are probably better/safer solutions given I only seems found the symptoms but not the cause?
Or if EnableUserControl
seems like a reasonable fix given the information, any suggestion could help me track down the cause of the problem (a registry key value change by the Administrator, probably?).
I don't think there is anything special about my installer, but in case of anyone want to see more details:
<Package Id="*" InstallerVersion="200" Description="Web service installer" Compressed="yes" InstallScope="perMachine" />
Edit:
As pointed out by PhilDW, those properties probably should be marked as Secure
to begin with. But then shouldn't all properties be marked as Secure
because of UAC, I don't think is make much sense to define a property to be not Secure
if it might be used by others?
I'm pretty sure it doesn't matter if you defined them or not - try marking them Secure.
这篇关于忽略不允许的属性 IISMAJORVERSION 和“EnableUserControl"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!