好的,我遇到了一个真正随机的错误,我找不到任何会发生这种情况的原因。我有一个我更新的应用程序,该应用程序是多年前首次开发的。我在一个庞大的开发团队工作,他们的唯一职责是管理这个应用程序,我们已经开始接受这个项目有点像“科学代码”项目。我们只是继承了这个项目的许多代开发人员中的谦逊开发人员。(稍后知道这一点很重要。)
我们应用程序的一部分在初始化过程的深处调用了以下代码:
string strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
string strFile = strPath.Substring(6) + "\\" + FILE_NAME;
这是交易。我的团队成员和我自己一直能够修改和构建我们解决方案的更高级别的 UI 和 DB 相关部分。我和其他任何人都修改了上述代码,或同一代码文件(或解决方案中的项目,就此而言)中的任何代码。
然而,今天在我的应用程序的一个完全不同的部分工作时,我开始遇到一些非常奇怪的“内存不足”异常错误。我不确定这是否与我的问题有关,但我觉得值得一提的是,在重新启动我的机器并重新加载 VS 解决方案后,当我尝试运行调试器测试时,我现在一直收到以下异常,当初始化进程尝试执行上述代码片段:
异常:mscorlib.dll 中出现“System.ArgumentException”类型的第一次机会异常消息:不支持 URI 格式。
我用谷歌搜索了这个错误消息,看起来原来的开发人员只是做错了。这似乎是一个常见的错误,但让我感到困惑的是,直到今天,这才随机出现。
我知道这是一个奇怪的问题,但是有没有办法在不修改此代码的情况下解决这个问题。正如我所提到的,这是一个非常复杂的应用程序,常常让人感觉有些拼凑。我们的团队正在尝试清理或替换大部分应用程序功能,但有些部分我们根本没有触及,因为我们不知道应用程序在部署到我们的生产环境后将如何工作。这是一个非常关键的应用程序,它不能被破坏。
可能有人知道什么可能导致这种情况“神奇地”开始发生吗?特别是因为我一直在处理与 UI 相关的代码,并且在代码的低级配置解析部分附近没有任何地方。
补充说明
- 我们使用源代码控制。如果我下载,构建运行应用程序的旧版本,它可以工作。
- 我们使用 AnkhSVN,当我再次检查我更改的文件时,没有任何与现在失败的代码相关的更改。
- 我的团队中没有其他人见过这种情况。
- 据我所知,我没有调整与我的项目相关的任何设置。我查看了我的项目属性,一切看起来都很正常。我想我有可能通过快捷键点击了一些奇怪的组合键并启用/禁用了某些东西,但我不知道那可能是什么。
任何帮助表示赞赏。对不起小说。我只是被难住了,如果有任何机会改变这个过程在不同的用户环境中表现不同,我宁愿不使用不同的方法来获取这个路径字符串。