好的,我遇到了一个真正的随机错误,而且找不到导致这种情况发生的任何原因。我有一个自己更新的应用程序,该应用程序是很多年前开发的。我在一个庞大的开发团队中工作,其唯一职责是管理该应用程序,我们已经接受了该项目有点像“弗兰肯代码”项目。在继承了该项目的许多代开发人员中,我们只是谦虚的开发人员。(稍后知道这一点很重要。)
我们的应用程序的一部分在初始化过程的深处调用以下代码:
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格式。
我已经在Google上搜索了此错误消息,看起来原始的开发人员只是在做此错误。这似乎是一个常见的错误,但令我感到困惑的是,直到今天,这才成为问题。
我知道这是一个奇怪的问题,但是有一种无需修改此代码即可解决此问题的方法。正如我所提到的,这是一个非常复杂的应用程序,常常让人感到有些困惑。我们的团队正在尝试清理或替换大部分应用程序功能,但是有些部分我们根本没有涉及,因为我们没有明确的线索将应用程序部署到生产环境后将如何工作。这是一个非常关键的应用程序,不能被破坏。
可能有人知道这可能导致“魔术”开始发生的任何线索吗?尤其是因为我一直在从事与UI相关的代码的研究,所以在其中的低级配置解析部分中没有这方面的内容。
任何帮助表示赞赏。对不起这本小说。我只是感到很困惑,如果在任何情况下更改此过程在不同的用户环境中可能表现出不同的行为,我都不想使用其他方法来获取此路径字符串。
我只能假定与项目/解决方案关联的Visual Studio中的某些工作文件已损坏。我搜索了项目文件的文本以及所有代码,但没有发现任何异常。
如前所述,我们使用源代码控制。为了尝试修复,我删除了与最初为当前任务提取的原始源修订版本相同的版本。我编译并运行了该应用程序。一切都在其“香草”状态下正常工作。
接下来,我复制了我知道已修改的所有文件。我没有添加任何新的项目引用或资源,因此只复制了修改过的.cs
文件。我构建并运行了该应用程序,自从分支机构撤出以来,我没有遇到任何麻烦。
这不能回答为什么会发生的问题,但是这种方法可以解决该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句