无法使process.start()与客户域上的UNC路径一起使用

时间:2010-11-17 06:22:59

标签: c# winforms

在winforms应用程序中,我正在尝试打开存储在UNC访问的共享驱动器上的文档。它在我的网络上工作正常,但在我的客户端网络上失败了。如果我检查以确保该文件存在,它会说它确实存在,但当我尝试打开它时,我收到一条错误消息说

  

System.ComponentModel.Win32Exception:   系统找不到该文件   指定于   System.Diagnostics.Process.StartWithShellExecuteEx(的ProcessStartInfo   的StartInfo)

这是代码......

// path = "\\server\folder with spaces\"
// fileName = "test.txt"

if (!System.IO.File.Exists(path + fileName)) {
  MessageBox.Show("The file " + fileName + " cannot be found.", "Remove File", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
  System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
  myProcess.StartInfo.FileName = path + fileName;
  myProcess.Start();    // FAILS HERE WITH 'SYSTEM CANNOT FIND THE FILE SPECIFIED' ERROR ON CUSTOMER'S NETWORK, WORKS FINE ON MY NETWORK
}

我已经尝试了我能想到的StartInfo选项的每个组合,并且无法找出它为什么找到System.IO.File.Exists()的文件,但却无法在process.Start();上找到它

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

因此,尝试使用UNC路径访问该文件失败。 将其切换为使用映射路径。我有点讨厌这样做,但映射是企业环境的一部分,所以我认为它不会很快改变。

答案 1 :(得分:0)

我不确定这是否属于您所看到的内容,但请检查this是否信任某个共享。相关信息:

  

由于网络共享默认只获得LocalIntranet权限,   想要使用CasPol完全信任某些人是相对常见的   您控制和知道的股票是安全的。但是,CasPol语法   就是这样,执行此操作的命令并不是很明显。   如果我想信任共享的一切\ ShawnFa-Srv \ Tools,那么   命令:

     

CasPol.exe -m -ag 1.2 -url file:// \ ShawnFa-Srv / Tools / * FullTrust

     

设置策略以执行我需要的操作。让我们打破这个   命令:

     

-m - 修改策略的计算机级别。这是必需的,因为机器级别是所有默认策略的存在。在新台币   平台它也是CasPol使用的默认级别   在Win9x上,CasPol将默认为用户级别,因此将-m放入   命令行显式告诉CasPol使用正确的级别。

     

-ag 1.2 - 在1.2组下添加代码组。在默认策略中,组1.2是LocalIntranet组,因此我们是新的代码组   只有在文件来自内联网时才会检查创建。

     

-url file:// \ ShawnFa-Srv / Tools / * - 新代码组的成员资格条件应为UrlMembershipCondition,并且应该匹配   任何URL以file:// ShawnFa-Srv / Tools开头的含义   \ ShawnFa-Srv \ Tools共享上的任何文件都将匹配此代码   基。

     

FullTrust - 授予与之匹配的程序集的权限集   代码组。在这种情况下,FullTrust。

请注意.NET 3.5 SP1 fixed这个。这只适用于从共享运行的.NET可执行文件,但如果这有助于您的情况,可能不会受到影响。 Vance Morrison州:

  

所以我鼓励你下载.NET 3.5 SP1 service pack。它   是运行时风险非常低的插件更新。一旦你这样做,   你可以免费获得网络发布。因为它是一个服务包,你   也可以简单地等待,并自动获取更新   接下来几周通过Windows更新。因此,如果你是软件   现在很快,您的客户很有可能   有这个更新的运行时。

相关问题