首頁>Program>source

我目前的情况是我需要在帶有IIS的遠端服務器上執行exe(建立本地.txt檔案),IIS託管ASP.net/C# API.我建立了一个本地使用者(例如userA)作為管理員,以在遠端服務器中執行web服務,但未建立.txt檔案.我已经檢查並向userA授予了必要的檔案夹權限,並將该使用者添加到各个組中.有趣的是,如果我在遠端系統中以userA身份登錄,則该exe將按預期執行.如果我註销則失败.服務器是帶有IIS 7的win Server2008。感谢您的任何帮助。

更新:我已经解決了這个問题,並在此處發佈了答案和一些相關問题的鏈接.簡而言之,我需要在IIS應用程式池中將"載入使用者配置檔案"設置為true。

感谢大家的贡献

最新回復
  • 9天前
    1 #

    更新:几週後,我設法解決了這个問题.谢谢大家的贡献.顯然,預設情况下,IIS不載入windows使用者配置檔案.因此,当以未登錄的其他使用者身份執行時,其windows配置檔案必须由IIS載入.在您的應用程式池的高級設置選單中,有一个"載入windows配置檔案"選項,我刚刚將其更改為true.在早期版本的IIS中,預設情况下將其設置為" true"。

    具有相同解決方案的SO相關問题:

    1)ASP.NET中的安全例外和IIS 7.5中的"載入使用者配置檔案"選項

    2)在IIS7上執行asp.net web應用程式專案会引發異常

    3)新部署中的System.web.AspNetHostingPermission異常

    另一个 4)http://geekswithblogs.net/ProjectLawson/archive/2009/05/05/iis-system.web.aspnethostingpermission-exception-on-windows-7-rc.aspx

  • 9天前
    2 #

    您可以使用 Process.Start

    Process process = new Process();
    process.StartInfo.FileName = "CVS.exe";
    process.StartInfo.Arguments = "if any";
    process.Start();
    

    在asp.net中還有一篇關於以其他使用者身份執行程序的帖子:

    http://weblogs.asp.net/hernandl/archive/2005/12/02/startprocessasuser.aspx

    提供使用者凭證

    簡而言之,它表示您必须使用以下代碼重定向该過程:

    ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
    info.UseShellExecute = false;
    info.RedirectStandardInput = true;
    info.RedirectStandardError = true;
    info.RedirectStandardOutput = true;
    info.UserName = dialog.User; // see the link mentioned at the top
    info.Password = dialog.Password;
    using (Process install = Process.Start(info))
    {
          string output = install.StandardOutput.ReadToEnd();
          install.WaitForExit();
          // Do something with you output data
          Console.WriteLine(output);
    }
    

  • 从Javascript讀取非內聯CSS樣式資訊
  • ios:如何使用Unicode十六进製值(UTF-16)在Swift中表示字元串