Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 问题:。网络代码从同一磁盘上的一个目录运行,而不是从另一个目录运行_.net_Crash_Directory_Citrix - Fatal编程技术网

.net 问题:。网络代码从同一磁盘上的一个目录运行,而不是从另一个目录运行

.net 问题:。网络代码从同一磁盘上的一个目录运行,而不是从另一个目录运行,.net,crash,directory,citrix,.net,Crash,Directory,Citrix,我们的应用程序是Win32非托管应用程序和.NET 2.0托管应用程序的混合。Win32部分是主可执行文件,它在某些时候加载并托管.NET 2.0运行时,并加载一些托管模块以打开新的winforms窗口 我们也遇到过CASPOL类型的问题,但今天我们遇到了一个非常奇怪的问题,我希望有人能给我一些建议或想法,或者基本上是任何真正的东西,这将触发一些火花,帮助我们解决这个问题 在通过citrix访问的服务器上,如果应用程序文件位于当前登录用户(服务器/域管理员)桌面上的目录中,则程序运行正常。.NE

我们的应用程序是Win32非托管应用程序和.NET 2.0托管应用程序的混合。Win32部分是主可执行文件,它在某些时候加载并托管.NET 2.0运行时,并加载一些托管模块以打开新的winforms窗口

我们也遇到过CASPOL类型的问题,但今天我们遇到了一个非常奇怪的问题,我希望有人能给我一些建议或想法,或者基本上是任何真正的东西,这将触发一些火花,帮助我们解决这个问题

在通过citrix访问的服务器上,如果应用程序文件位于当前登录用户(服务器/域管理员)桌面上的目录中,则程序运行正常。.NET窗口按预期打开

但是,如果我们将目录移动到同一磁盘的根目录,这是服务器中的一个物理磁盘(因此,据我所知,没有SAN映射或任何会触发CASPOL命令的东西),并使其他所有内容保持相同、相同的用户、相同的配置等,那么当我们尝试调用.NET windows时,应用程序会自动崩溃。它以消失的方式崩溃,这表明它可能有点像堆栈溢出。我们正在考虑将日志添加到应用程序的某些部分,以便能够了解发生了什么以及发生在哪里,但我也在这里发布了这个问题

到目前为止,我们已经验证了CASPOL访问列表中没有异常,NGEN缓存中没有异常(我在想,如果服务器所有者使用过它,可能以前的映像已经损坏),GAC中没有异常(我们不使用GAC处理程序集)

总结:

  • 如果程序是从U:\Documents and Settings\USERNAME\Desktop\directory运行的,则它可以工作
  • 如果它是从U:\目录运行的,则不会
  • U:是服务器中的物理磁盘
  • NGEN或GAC缓存中没有明显的异常
  • 安装了正确的.NET运行时,为我们的应用程序安装了正确的文件(如果从桌面位置运行,确实可以正常工作)
有人有什么可以帮忙的吗


编辑:不同/其他信息的问题,并“解决”。

我的第一个尝试是从MS Sysinternals运行process monitor,并查看这两种情况下的调用/结果不同。 也许这会给你一些提示(同一个调用的不同结果,问题运行中的一些错误不是好的…)

您可以从MS下载过程监视器:

我的第一个想法是,您需要确保程序中没有为引用程序集、文件等定义相对/绝对路径,这些路径在移动应用程序根目录时会造成问题。

是否可能与用户权限相关?从开始运行以检查。即使它不是直接相关的,该工具也可能会提供一些有用的提示。

我很久以前就遇到过这样的问题。经过多次拉扯,我发现了问题


在使用Process.Start()或任何此类调用时要非常小心,因为根据启动方式,它可以使用各种文件夹作为工作环境(当前路径、系统环境等。

我不熟悉该程序,我一定会检查它。谢谢!没有这样的相对路径,也没有用于加载程序集的任何自定义解析处理。所有内容都位于一个目录中(某些本地化资源dll除外)。谢谢,我们正在进行这项工作,但它是一个繁忙的服务器,因此我们不确定在其上运行此类核心监控应用程序会产生什么影响。谢谢,但这也不是问题所在。我们在内部托管.NET运行时,因此不存在任何进程。从那里开始,通过双击Windows Expl中的可执行文件来加载程序orer,因此它在两个实例中都使用本地文件夹。