简体   繁体   English

Winform 应用程序未在 64 位服务器上运行

[英]Winform application not running on 64bit server

I have a winform application to read values from the registrykey..我有一个 winform 应用程序来从注册表项中读取值..

so i know i have to run as administrator in order to do so.所以我知道我必须以管理员身份运行才能这样做。

I have two servers of win 2003. one is 32 bit and the other is 64 bit.我有两台win 2003的服务器。一台是32位的,另一台是64位的。

When i run this application on my 32 bit i have no problem and it reads the values from the registry..当我在我的 32 位上运行此应用程序时,我没有问题,它会从注册表中读取值..

but when i run the application from my 64 bit server it cannot read from the registry.但是当我从我的 64 位服务器运行应用程序时,它无法从注册表中读取。

i get a我得到一个

system.nullreferenceexception system.null 引用异常

as i cannot read the root of my reg key which returns null.因为我无法读取返回 null 的注册密钥的根。

i have put a manifest file also but with that too its not working..我也放了一个清单文件,但它也不起作用..

any help will be greatly appreciated... thanks..任何帮助将不胜感激...谢谢..

here is my manifest file:这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
 <asmv1:assemblyIdentity version="1.0.0.31" name="FileShareMgmt.exe" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="msil" type="win32" />
<application />
<entryPoint>
<assemblyIdentity name="FileShareMgmt" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
<commandLine file="FileShareMgmt.exe" parameters="" />
</entryPoint>
<trustInfo>
<security>
  <applicationRequestMinimum>
    <PermissionSet class="System.Security.PermissionSet" version="1"  Unrestricted="true" ID="Custom" SameSite="site" />
    <defaultAssemblyRequest permissionSetReference="Custom" />
  </applicationRequestMinimum>
  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">       
<requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    <!-- UAC Manifest Options
        If you want to change the Windows User Account Control level replace the 
        requestedExecutionLevel node with one of the following.

    <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
    <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

        If you want to utilize File and Registry Virtualization for backward 
        compatibility then delete the requestedExecutionLevel node.
    -->     
  </requestedPrivileges>
</security>
</trustInfo>

this is not the complete manifest as there are which i think wont be required to show here...这不是完整的清单,因为我认为这里不需要显示...

Have you verified that the key you're trying to read exists on the 64-bit system?您是否确认您尝试读取的密钥存在于 64 位系统上?

The path may be different for a 64-bit system: http://support.microsoft.com/kb/896459 64 位系统的路径可能不同: http://support.microsoft.com/kb/896459

If your registry key contains the text "WOW6432node", that's the 32-bit version.如果您的注册表项包含文本“WOW6432node”,那就是 32 位版本。 The 64-bit version will probably be the same except that part of the path won't be there. 64 位版本可能相同,只是路径的一部分不存在。

This question may be related: Why is OpenSubKey() returning null on my Windows 7 64-bit system?这个问题可能是相关的: 为什么 OpenSubKey() 在我的 Windows 7 64 位系统上返回 null?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM