Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C应用程序在vista/7上冻结,而不是在xp/2003服务器上冻结_C#_Freeze - Fatal编程技术网

C# C应用程序在vista/7上冻结,而不是在xp/2003服务器上冻结

C# C应用程序在vista/7上冻结,而不是在xp/2003服务器上冻结,c#,freeze,C#,Freeze,我编写了一个C应用程序,在我的xp开发机器上运行良好。 当我的客户端在不同的PC上运行它时,它似乎在vista和7机器上都冻结了。 我想知道在vista/7上运行dotnet应用程序是否有任何问题。 我为Framework2.0和3.5编译了这个应用程序,但没有任何帮助。 日志文件也没有帮助。 有没有办法知道应用程序冻结在哪里?当然,客户端没有用于附加到应用程序的VS? 提前感谢您的帮助 皮埃尔。您没有提供太多信息,以便我们提供大量帮助 首先,我会尝试在一台可用的虚拟机vista上本地重新创建该

我编写了一个C应用程序,在我的xp开发机器上运行良好。 当我的客户端在不同的PC上运行它时,它似乎在vista和7机器上都冻结了。 我想知道在vista/7上运行dotnet应用程序是否有任何问题。 我为Framework2.0和3.5编译了这个应用程序,但没有任何帮助。 日志文件也没有帮助。 有没有办法知道应用程序冻结在哪里?当然,客户端没有用于附加到应用程序的VS? 提前感谢您的帮助


皮埃尔。

您没有提供太多信息,以便我们提供大量帮助


首先,我会尝试在一台可用的虚拟机vista上本地重新创建该问题,然后使用类似的东西分析该应用程序。

通常,.NET应用程序应该在安装了.NET framework的任何Windows版本上运行相同的应用程序。出现的最常见问题与Vista和7中的新用户帐户控制策略有关,该策略阻止应用程序访问需要提升权限的区域,否则在XP的管理员帐户下可以正常运行

例如,如果您的应用程序试图将配置设置写入Program Files文件夹,这是一个非常糟糕的主意,顺便说一句,或者使用一些硬编码磁盘或注册表路径而不是.NET类中提供的环境变量,那么它可能会在Vista下失败

要快速检查这是否是UAC权限问题,请尝试以管理员身份运行应用程序,让客户端右键单击.exe文件,然后选择以管理员身份运行。如果它有效,那么这就意味着您需要检查代码并进行更新,以确保您只访问允许的区域

有关详细信息,请检查此链接:


正如所建议的,在各种Windows系统中测试应用程序的最佳方法是在多个虚拟机中运行它们,或者两个虚拟机都可以免费下载。

请您的客户端使用Windows任务管理器捕获进程转储

在任务管理器中,查找挂起的进程。 右键单击并捕获内存转储。 然后,您可以对转储进行一些分析,以了解其挂起的原因


如果您不熟悉转储分析,请找到可以通过

帮助或打开支持案例的人。csharp应用程序应该在vista/win7上运行。这是他们的家:

你的问题不是操作系统。这是你的申请。 很可能应用程序正在寻找一个文件、一个文件夹、客户端上不存在的东西及其冻结。这是我的经验

检查项目独立性,并确保您已向客户提供了项目所需的一切


最后,将调试版本与调试消息一起分发给一个客户端,并从其系统中获取反馈。

我有一台windows 7 PC,但无法重新创建问题。注意:是的,大多数奇怪的问题不能在另一台机器上重现。应用程序做什么?它是多线程的,可能存在死锁吗?如果您提供有关该应用程序实际运行的更多信息,其他人可能会发现问题的可能原因。您能否详细说明该应用程序在工作环境中的作用?这个应用程序的用途是什么?是否涉及数据库?文件系统?等…该应用程序正在通过该网站提供的API访问网站。这是一个很好的观点,但我有一台windows 7 PC,它似乎正在运行。我想我没有涵盖我的客户正在覆盖的代码领域,但这很难说。最好是有一个调试器,可以连接到冻结的应用程序,以获取堆栈跟踪,我认为,内部测试永远无法捕获所有问题,就像Pierre面临的问题一样。因此,必须使用其他方法。如果客户不是开发人员,要求客户使用调试器可能太难了。通常情况下,进程转储更容易捕获,并提供足够的信息进行故障排除。我加载了Microsoft符号,但无法加载dotnet符号和我的应用程序符号。我将应用程序bin/debug dir添加到符号路径,但它似乎没有加载任何内容。这是调用堆栈,它对我没有帮助:>ntdll.dll_KiFastSystemCallRet@0user32.dll_NtUserWaitMessage@0+0xc字节System.Windows.Forms.ni.dll!68bb8ea8[以下帧可能不正确和/或缺失,没有为System.Windows.Forms.ni.dll加载符号]System.Windows.Forms.ni.dll!68bb8ea8 System.Windows.Forms.ni.dll!68bb8997 System.Windows.Forms.ni.dll!68bb87e1 System.Windows.Forms.ni.dll!68b75931 mscorwks.dll_CallDescrWorker@20+0x33字节mscorwks.dll_CallDescrWorkerWithHandler@24+0x9f字节mscorwks.dll!MethodDesc::CallDescr+0x15a bytesmcorwks.dll!MethodDesc::CallTargetWorker+0x1f字节mscorwks.dll!MethodDescrCallSite::CallWithValueTypes_RetArgSlot+0x1a字节mscorwks.dll!类加载器::Ru
nMain-0x39040字节mscorwks.dll!Assembly::ExecuteMainMethod+0xa4字节mscorwks.dll!SystemDomain::ExecuteMainMethod+0x416字节mscorwks.dll!ExecuteEXE+0x49字节mscorwks.dll__CorExeMain@0+0x98字节mscoreei.dll!71f455ab mscoree.dll_壳垫片__CorExeMain@0+0x227字节mscoree.dll__科雷克斯曼_Exported@0+0x8字节内核32.dll@BaseThreadInitThunk@12+0x12字节ntdll.dll___RtlUserThreadStart@8+0x27字节ntdll.dll__RtlUserThreadStart@8+0x1b bytesSounds似乎您对.NET调试知之甚少,因此请遵循我的建议并咨询Microsoft支持团队。