忽略不允许的属性 IISMAJORVERSION 和“EnableUserControl"? [英] Ignoring disallowed property IISMAJORVERSION and 'EnableUserControl'?

查看:16
本文介绍了忽略不允许的属性 IISMAJORVERSION 和“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,但在我的日志中没有,这似乎指向设置 EnableUserControlto 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆