我们目前在我们的一台客户计算机上遇到以下软件行为:
简短版:
我们的.NET应用程序有时在从客户端执行时立即崩溃,可执行文件位于单独的文件服务器上。
发生这种情况时,事件日志中的消息声称无法访问可执行文件。但是,桌面快捷方式总是找到可执行文件。
请注意,这会发生在几个不同的.NET可执行文件中。
这引导我们进行以下
问题:
Windows如何始终访问可执行文件(该过程在崩溃时在任务管理器中可见)但.NET Framwork有时只能访问它?请注意,我们的客户有时会因未知原因出现网络问题 而且,更重要的是,在这种情况下,我们可以做些什么来防止崩溃或者至少显示一个自己的消息框?
有关详细信息,请阅读以下内容:
详细信息:
我们的C#可执行文件位于虚拟化文件服务器(Windows Server 2003)上,并使用.NET 3.5 SP1进行编译。
当尝试使用来自同一网络中的客户端的桌面/开始菜单快捷方式执行软件时,可执行文件有时(大约尝试次数的2-5%)崩溃,即用户收到“< our软件>遇到错误,需要关闭“消息。作为参考,客户端也安装了.NET 3.5 SP1。
进一步调查表明,即使执行了一行代码,程序也会崩溃(即永远不会达到main()方法。)
在Windows事件日志中,有两条消息,第一条消息相对无用(德语免费翻译):
应用程序失败,版本0.0.0.0,模块未知失败,版本0.0.0.0,失败地址0x79002c42。
第二个说的是:
由于以下原因之一,无法访问文件\\< server> \<软件> \< executable> .exe的路径:网络连接存在问题,驱动器所在的位置文件分别存储在计算机上安装的磁盘驱动程序,或者驱动器丢失。由于此错误,程序< executable> .exe已关闭。
[关于做什么的一些建议]
更多信息:
错误代码:C0000008
驱动器类型:4
现在第一个建议是再次尝试打开文件,因为情况可能是暂时的问题。 虽然这个“解决方案”有效,但是有一个应用程序崩溃消息是不可接受的,特别是当我们的一个可执行文件调用另一个时。
如果您无法直接回答上述问题,但您知道如何进一步调查此问题,请随时发表评论或回答。但请注意,我们不允许在客户客户端甚至服务器上安装任何类型的第三方软件。可以使用便携式应用程序(更准确地说,可以将软件复制/粘贴到单个文件夹中,并且不会将任何类型的文件部署到该单个文件夹之外的任何位置)。
答案 0 :(得分:1)
如果是我,我会首先看看我是否可以在本地重新创建问题并完全消除网络。这一切都是为了建立线索,希望能够让您更接近解决方案。其他值得考虑的事情是:
消除过程是游戏的名称,即使最不可能的候选人也不应该被忽视。