C# exe文件无法从IIS创建txt文件

C# exe文件无法从IIS创建txt文件,c#,asp.net,iis,file-permissions,iis-express,C#,Asp.net,Iis,File Permissions,Iis Express,我已经创建了一个WebApi项目,在其中我调用了一个exe,即Latlong2XY.exe,它将输入文件和输出文件作为参数。并返回一个.txt作为输出文件。当我从VS2012 IDE执行应用程序时,它正在成功创建所需的txt文件。但是,当我在IIS中发布相同的应用程序并运行它时,它无法创建txt文件 似乎IIS Express正在创建txt文件,而IIS没有创建。 这似乎是权限问题。但不知道该怎么办。 我的代码是: int exitCode; // Prepare

我已经创建了一个WebApi项目,在其中我调用了一个exe,即
Latlong2XY.exe
,它将输入文件和输出文件作为参数。并返回一个.txt作为输出文件。当我从VS2012 IDE执行应用程序时,它正在成功创建所需的txt文件。但是,当我在IIS中发布相同的应用程序并运行它时,它无法创建txt文件

似乎IIS Express正在创建txt文件,而IIS没有创建。

这似乎是权限问题。但不知道该怎么办。 我的代码是:

        int exitCode;
        // Prepare the process to run
        ProcessStartInfo start = new ProcessStartInfo();
        // Enter in the command line arguments, everything you would enter after the executable name itself
        start.Arguments = @"D:\RFD\InputFile.txt D:\RFD\Results.txt";
        // Enter the executable to run, including the complete path
        start.FileName = @"D:\RFD\Latlong2XY.exe";
        // Do you want to show a console window?
        start.WindowStyle = ProcessWindowStyle.Hidden;
        start.CreateNoWindow = true;

        // Run the external process & wait for it to finish
        using (Process proc = Process.Start(start))
         {
            proc.WaitForExit();

            // Retrieve the app's exit code
            exitCode = proc.ExitCode;

        }
IIS设置包括:

Windows身份验证:已禁用; 表单认证:禁用; Anon auth:已启用; .Net模拟:已禁用


我正在使用ASP.NET v4.0应用程序池。

您需要为应用程序目录(主机上的文件所在位置)授予提升权限。(通常为C:\inetpub\wwwroot\YourAppName)


授予用户“IIS_USR”或与该名称相近的名称对文件夹的写访问权。

是的,当您从
Visual Studio IDE执行此类操作时,
会起作用,因为
IDE
具有控制(系统.诊断.进程.启动)的IO操作的最低权限

当您从IIS转到
Web应用程序
托管时,不幸的是,IIS没有内置这些权限设置。因此,您需要设置权限以执行
windows本机操作

注意:使用此选项,您将提供加密的系统(服务器)用户名和密码

您可以使用
Aspnet\u setreg.exe
在Web配置中设置windows身份验证权限。将在互联网上提供使用说明

在您的网络配置中添加以下行:

<authentication mode="Windows"/>

<identity impersonate ="true"  userName="registry:HKLM\SOFTWARE\YourAPPName\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\YOURAPPNAME\ASPNET_SETREG,password"/>

在“windows服务从web重新启动”的开发过程中,我遇到了类似的问题。同样的许可问题,我已经解决,并得到了这样的工作方式


这个答案可能并不完美。但这也是实现解决方案的一种方法

@sudhakar tillapudi也可以查看上面的链接。亲爱的@RJK谢谢你的回答,我会尽力让你知道的。