My current situation is that I need to execute an exe(which creates a local .txt file) in remote server with IIS hosting an ASP.net/C# API. I created a local user(say userA) as admin to run the web service in the remote server but the .txt file was not created. I already checked and granted necessary folder permissions to userA and added the user in various groups. The funny thing is that if i am logged in as userA in the remote system, the exe gets executed as expected. If i log out then it fails. Server is Win server 2008 with IIS 7. Any help would be appreciated thanks.
UPDATE: I've solved the issue and posted the answer and a few links to related issues here on SO. In short, I needed to set 'load user profile' true in IIS app pool.
Thanks everyone for their contribution
EDIT: Code extracted from comments
Process proc = new Process();
proc.StartInfo.FileName = path;
proc.StartInfo.Arguments = exeparams;
proc.Start();
proc.WaitForExit();
stat = proc.ExitCode;
if (stat != 0)
{
throw new Functions.log("Error");
}
UPDATE: I managed to solve the issue after many weeks. Thank you all for your contribution. Apparently IIS does not load windows user profiles by default. So when running as a different user who is not logged on, their windows profile must be loaded by IIS. In advanced setting menu of your app pool, there is an option "load windows profile" I just changed this to true. In prior versions of IIS, this was set to 'true' by default.
Related questions on SO with same solution:
1) Security exceptions in ASP.NET and Load User Profile option in IIS 7.5
2) Running a asp.net web application project on IIS7 throws exception
3) System.Web.AspNetHostingPermission Exception on New Deployment