我在 Vista Business 上运行的第三方软件之一遇到了这个奇怪的问题。我有一个用户,使用该用户的凭据本地登录后,使用该第三方软件的任何人都会收到此错误:
Error Report generated on 7/2/2012 9:46:57 AM
=======================================================================================
Product Version : 9.2.1.0
OS : Microsoft Windows NT 6.0.6002 Service Pack 2
Environment Variables :
=======================
Path : C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
TEMP : C:\Users\xxxxxx\AppData\Local\Temp
SESSIONNAME : Console
PATHEXT : .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
USERDOMAIN : xxxxxxxx
PROCESSOR_ARCHITECTURE : x86
SystemDrive : C:
TRACE_FORMAT_SEARCH_PATH : \\NTREL202.ntdev.corp.microsoft.com\4F18C3A5-CA09-4DBD-B6FC-219FDD4C6BE0\TraceFormat
APPDATA : C:\Users\xxxxxxx\AppData\Roaming
windir : C:\Windows
LOCALAPPDATA : C:\Users\xxxxxxx\AppData\Local
TMP : C:\Users\xxxxx\AppData\Local\Temp
USERDNSDOMAIN : xxxxxxx.LOCAL
USERPROFILE : C:\Users\xxxxxx
ProgramFiles : C:\Program Files
FP_NO_HOST_CHECK : NO
HOMEPATH : \
COMPUTERNAME : xx-xxxx-x
HOMESHARE : \\server\home\xxxxxxxx
ProgramData : C:\ProgramData
NUMBER_OF_PROCESSORS : 1
PROCESSOR_IDENTIFIER : x86 Family 15 Model 127 Stepping 2, AuthenticAMD
USERNAME : xxxxxxx
SystemRoot : C:\Windows
ComSpec : C:\Windows\system32\cmd.exe
LOGONSERVER : \\server
DFSTRACINGON : FALSE
CommonProgramFiles : C:\Program Files\Common Files
PROCESSOR_LEVEL : 15
PROCESSOR_REVISION : 7f02
ALLUSERSPROFILE : C:\ProgramData
PUBLIC : C:\Users\Public
OS : Windows_NT
HOMEDRIVE : H:
=======================
Machine Name : xx-xxxx-x
User Domain : xxxxxxxx
User : xxxxxxx
.NET Version : 2.0.50727.4016
Memory : 41291776
Error Details
=============
Input string was not in a correct format.
mscorlib
Stack Trace
===========
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at Thermo.SampleManager.Client.ExplorerApplicationService.LoadSettings()
at Thermo.SampleManager.Client.ExplorerApplicationService.Setup(IClientApplicationServiceSite site)
at Thermo.Framework.Client.ClientApplicationServiceCache.AddService(String serviceName, Type serviceType, IClientApplicationService service)
at Thermo.Framework.Client.ClientApplication.GetService(Type serviceType)
at Thermo.Framework.Client.ClientApplication.HandleApplicationServiceMessage(ApplicationServiceMessage message)
at Thermo.Framework.Client.ClientApplication.TransportMessageReceived(Object sender, MessageEventArgs e)
at Thermo.Framework.Core.Transport.OnMessageReceived(Message message)
at Thermo.Framework.Core.Transport.ConversationMessageReceived(Object sender, MessageEventArgs e)
at Thermo.Framework.Core.Conversation.OnMessageReceived(Message message)
at Thermo.Framework.Core.Conversation.HandleBundle(Bundle bundle)
============================================================
现在,如果我本地登录到同一台 PC,我不会收到该错误,该用户也不会收到该错误。我还应该提到我有管理员权限。
以下是我目前所做的:
- 删除本地配置文件并重新添加
- 卸载并重新安装软件
- 尝试在所有 .net 相关目录中取消注册并重新注册 mscorlib.dll
正如我之前所说,客户端在 Vista Business 上运行,软件的后端驻留在虚拟化的 Windows Server 2003 上。
有什么建议吗?请帮忙!
答案1
mscorlib 显然不是问题所在,它是 .Net 的核心,因此大多数错误最终都会追溯到它,即使它们实际上源自第三方代码。在这种情况下,它会明确告诉您错误出在 Thermo.Framework 中,试图解析无法解析为 int 的字符串(如果无法获取正确的值,则可能是空字符串),而无需担心错误处理等愚蠢的小事。如果他们仍然生活在每个人都是管理员的世界里,那么他们就落后于时代了,您需要告诉他们修复他们的错误。
我看到你也被建议这样做你之前的问题。
但有一些方法可以让你找出问题所在。首先进程监控并搜索 DENIED,一半情况下你会看到需要更改权限的内容。如果这不能帮助你找到问题所在,你可以使用调试工具(使用 gflags,windbg 的一部分,从 excel 开始)来实际捕获发生的异常并查看发生了什么,但即使对于老手来说这也是非常复杂的。
认真地让他们修复他们的错误,这将为你节省很多时间。