我有一个相当奇怪的情况,我真的不知道如何正确地表达它......
情况是这样的:
我有一个 ASP.NET Web 应用程序 (WA)。它引用调用非托管动态库 (DLL) 的程序集 (CL1)。此 DLL 引用来自另一个库 (LIB) 的方法,该库又调用托管代码类库 (CL2)。
所以链条是这样的:WA -> CL1 -> DLL -> LIB -> CL2
我在调试模式下启动我的 Web 应用程序。一切正常。我在浏览器中看到一个页面,显示从最后一个类库 CL2 获得的结果(假设是某个非空字符串)。现在我在 TFS 中的 Web 应用程序中签出一个文件。Visual Studio 不会停止调试过程,但是,正如我所假设的,它会卸载应用程序、终止会话等。
我转到浏览器并刷新页面 - 应用程序重新启动,页面正在呈现,但结果从 LIB 到 CL2 的调用不再起作用。而不是字符串,我得到一个错误的指针。
当我停止调试并重新启动它(硬重启?) - 一切都开始按预期工作。
我假设在我的应用程序结束然后再次启动(软重启?)后,由于某种原因它无法重新加载我的 CL2。
我的问题: 有什么办法可以防止这种情况发生吗?