我已经开发了一个WebForms应用程序,其中我从列表框中列出的文件夹中具有文件。在VS2019中运行正常运行,我双击列表框中的文件名并打开,但是当我在Windows Server 2012上发布IIS时,它只是在backgroud上打开cotces,但该文件永远不会打开。
我更改了应用程序运行到本地系统,电源域用户的帐户,什么也不会发生。我也给了用户名和密码来process.start。
var folder1 = @"\BOXIEjecutablesCRM2" + NumCaso_txt.Text;
foreach (char c in "PASSWORD")
pwd.AppendChar(c);
if (Directory.Exists(folder1))
{
DirectoryInfo Dir = new DirectoryInfo(folder1);
FileInfo[] FileList = Dir.GetFiles("*.*", SearchOption.AllDirectories);
foreach (FileInfo FI in FileList)
{
//filesLbox.Items.Add(FI.Name + " " + FI.CreationTime);
if (filesLbox.SelectedIndex == i)
{
ProcessStartInfo procStart =
new ProcessStartInfo("notepad.exe", FI.FullName);
procStart.UserName= "USER";
procStart.Domain= "DOMAIN";
procStart.Password = pwd;
procStart.UseShellExecute = false;
Process.Start(procStart);
//command.StartInfo.FileName = FI.FullName;
////Process.Start(FI.FullName);
//command.Start();
break;
}
i++;
}
}
如果要在客户端计算机上打开文件,则需要应用一些可以通过浏览器与OS相交的JavaScript。
如果要在服务器计算机上打开文件,则您的Web应用程序必须在具有活动性GUI会话的用户上运行。为此,请使用您的凭据登录到服务器,将应用程序池标识更改为登录用户,重新启动IIS,并且该过程应按照您的预期使用GUI打开。如果那不起作用,您还可以尝试在IIS服务配置中启用"允许服务与桌面交互"选项。