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