C# exe文件无法从IIS创建txt文件
我已经创建了一个WebApi项目,在其中我调用了一个exe,即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
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谢谢你的回答,我会尽力让你知道的。