输入字符串的格式不正确。mscorlib

输入字符串的格式不正确。mscorlib

我在 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,我不会收到该错误,该用户也不会收到该错误。我还应该提到我有管理员权限。

以下是我目前所做的:

  1. 删除本地配置文件并重新添加
  2. 卸载并重新安装软件
  3. 尝试在所有 .net 相关目录中取消注册并重新注册 mscorlib.dll

正如我之前所说,客户端在 Vista Business 上运行,软件的后端驻留在虚拟化的 Windows Server 2003 上。

有什么建议吗?请帮忙!

答案1

mscorlib 显然不是问题所在,它是 .Net 的核心,因此大多数错误最终都会追溯到它,即使它们实际上源自第三方代码。在这种情况下,它会明确告诉您错误出在 Thermo.Framework 中,试图解析无法解析为 int 的字符串(如果无法获取正确的值,则可能是空字符串),而无需担心错误处理等愚蠢的小事。如果他们仍然生活在每个人都是管理员的世界里,那么他们就落后于时代了,您需要告诉他们修复他们的错误。

我看到你也被建议这样做你之前的问题

但有一些方法可以让你找出问题所在。首先进程监控并搜索 DENIED,一半情况下你会看到需要更改权限的内容。如果这不能帮助你找到问题所在,你可以使用调试工具(使用 gflags,windbg 的一部分,从 excel 开始)来实际捕获发生的异常并查看发生了什么,但即使对于老手来说这也是非常复杂的。

认真地让他们修复他们的错误,这将为你节省很多时间。

相关内容