Configuration :: System.Diagnostics.Process.Start Not Working?
Jan 7, 2011
I have installed VS2008 on my development machine have winxp sp2 OS.i have created one aspx page where i have placed one button. On click of that button i want to open osk.exe(on screen keyboard). i an using following code
System.Diagnostics.Process.Start("osk.exe")i works fine there.Now for testing i deployed that application to testing server having Win7 OS and IIS7.0. It is not working there.
If I watch the processes tab in Task Manager on the web server I see "cmd.exe" under the context of 'administrator' but it just hangs. For test purposes c:SendV80s.bat: copy c: oot.ini c:zzz.txt
If I logon onto the webserver's console and execute SendV80s.bat it works and exits without issue. But when I execute the same batch file via the Submit button it gets stuck executing in Task Manager/Process. I believe this has something to do with the fact that cmd is not running in a full environment/desktop context. I just noticed this on the actual console of the webserver (not in my RDP console but console 0 instead)
A pop-up box stating: CMD.exe Application error The application failed to initialize properly (0xc0000142). Click OK to terminate the application. And when I click on the OK button my ASPX page's WaitForExit is satisfied and the continues processing normally.
What is the right approach when users (authenticated domain admins) should be able to start batch jobs (usually exe files) from an IIS (7.x) aspx (c#) page? This is an intranet site. The batch jobs have to run on the web server as Domain Admins. The website pool is executed by network service or some similar restricted account in AD.
Approaches I can think of (and their disadvantages): 1. Start exe file with System.Diagnostics.Process.Start with another account. This feature is disabled in IIS 7.x, how do I allow it?
2. Create a sheduled task and call scheduled task-api. This unmanaged dll is giving VS compiler warnings because it's unsafe to call from managed code.
3. I suppose there's a better approach, because the previous suggestions doesn't appear safe or robust.
When I run System.Diagnostics.Process.Start from my console application it works but the same code when I run from my web service hosted in IIS doesn't work.
Is it some thing to do with ASP.Net privileges?? if yes how can I configure it from my C# code.
I can not run System.Diagnostics.Process.Start(@"wmplayer.exe") in code behind under IIS, - nothing happens, though I can do it successfully using Visual Studio ASP.NET Development server. I read topic http://support.microsoft.com/kb/555134 and made as recommended: 1) Made ASP.NET worker process run in SYSTEM account 2) Enabled IIS Admin Service to interact with desktop and rebooted serivce. - wmplayer.exe does not start, even its process does not start. I tried start notepad.exe and it partly works - process starts, I see only window frame, but not menu and can not interact with it. The other thing I tried is to put it under out-of-process (IIS virtual folder properties) and gave the process administrative rights (changed identity in Component Services): no result.
for example it just starts notepadn my development pc i'm using Win7 and when i deploy the app onto my local IIS7 it works and i can call notepadWhen i run debug mode with VS2010 it works too!
i just found that can not run System.Diagnostics.Process.Start if i set the identity impersonate="true", what can i do if i need to use System.Diagnostics.Process.Start to run my java application and need to set the identity tag?
I keep receiving an exception with the message "Logon failure: unknown user name or bad password". Im absolutelly sure that i'm submiting my correct username/pwd
Description:An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
I am trying to use the unmanaged ImageMagick library in my ASP.NET application from the command line using System.Diagnostics.Process. Basically, users will upload an .eps file to the site, and then I will run the command line command to convert it into .jpg. This is the code I'm using to try and run the command:
Dim proc As New System.Diagnostics.Process proc.StartInfo.RedirectStandardOutput = True proc.StartInfo.RedirectStandardError = True proc.StartInfo.FileName = "C:Program Files (x86)ImageMagick-6.6.1-Q16convert.exe" proc.StartInfo.UseShellExecute = False proc.StartInfo.Arguments = String.Format("{0} {1}", Server.MapPath("~/logo/test.eps"), _ Server.MapPath("~/certificates/temp/test-1234.jpg")) proc.StartInfo.CreateNoWindow = True proc.Start()
I am able to run this code just fine on our development Win 2k3 server, but not on our production Win 2k3 Server. I get the error "System.ComponentModel.Win32Exception: Access is denied". The main between the two servers is that the production is 64-bit and runs Plesk to manage multiple domains. I've tried adding rights asp.net user to the ImageMagick directory. The PS Admin says that in the case of Plesk, it's the same account that I use to access the site in VS using FPE. Does anyone know what I might do in order to allow this process to run on my production server?
We have a Page Method on a web page using ASP .Net. We tried to put in a trace statement using both System.Diagnostics and System.Diagnostics.Debug. In Visual Studio 2008, the break point is not even hit for the line, but other break points on other lines are hit.There is no output from either method that we can see.
There is also a Global.asax error catcher that works fine in other cases, but in the Page Method is not being catched.why a Page Method and System.Diagnostics do not play well together?
I have developed a ASP.NET C# web page which connects to remote conmputer command prompt using PSEXEC.exe and executes some command where the output of the command will get copied to the page. It works fine in the VS 2005 IDE.
If the page is accessed via IIS from IE, the task PSEXEC.EXE appears in task manager of the server with the system account privilege after the method is triggered but nothing happens.
find my present settings in IIS and others:
1. APP Pool Identity to Local System (Predefined) and also to a configurable admin account.
2. <processModel userName="SYSTEM" password="AutoGenerate" /> in Machine.Config file
Also I've tried impersonasation in web.config file to an admin account.
I have a web app that needs to start an application. It works great when using the debug server from VS2010 but once I deploy the web app and use the local IIS 7.5 server the application process starts in the background (no UI just a process visible in the task manager). The process is owned by DefaultAppPool. I Added DefaultAppPool user & IIS_IUSRS group to the program folder permissions but still no luck.I've found this old link on this problem but the solution doesn't apply to IIS 7.5.
So, I have a webForm that has an ImageButton. This ImageButton has to open a file (said file is uploaded by the user in another web form. The file is saved to \serverNamefiles; it can be a doc file, pdf file, excel file).
So this ImageButton should open said file as you normally would. It works on debug, however when I publish my site, and run it from my localhost, it doesn't open the file. When I click the ImageButton it just does the postback and nothing happens.
The code for the ImageButton is just:
Process.Start(fileName);
fileName has the full path of the file I want to open, in this case it has: \serverNamefilesmyFile.pdf
I have code that runs under IIS6 & ASP.Net 2.0, that won't run under IIS7.5 on Windows Server 2008 R2. I am assuming I have a configuration problem - but I don't know. On a Windows Sever 2008 R2 system: From inside IIS (v7.5), an ASP.NET process will not connect to port 21 (ftp) on the ICS (using System.Net.Sockets.Socket), it fails, logging an error that it cannot connect to the system at nnn.nnn.nnn.nnn. But, from a command prompt on the same server though, I am able to connect via ftp to the system at nnn.nnn.nnn.nnn. I am using the DefaultAppPool.
Here's a code snippet:
[Code]....
And the connect throws an exception - unable to connect I'm firing up wireshark soon and I'll see what if anything is getting across the wire? particularly if you think it's administrative in nature, cause that's a real weak point for me.
I'm going to precompile an asp.net application in my custom c# form. How do i retrieve the process logs and check whether it is a successful process or not?
I am using System.Net.Mail in C#.net website. Basically, I use this to send email alerts to users when some action has occurred.
The problem is, when some PC's are used to trigger an email, nothing happens. I have 2 PC's in my office, and when I do the action on one of them, it works, but not on the other. Why is that?
Also, when an action is triggered by the login page (email reports), it works everywhere, but not on other pages.
I thought C# was server-side code? Shouldn't everything work or not work based on what the server has installed?
There is a Web Service installed on Amazon Server. Exposed WebMethod should start an executable. But, it seems that process (executable) started by WebMethod has not permissions to finish its job. If a WebMethod is called locally (using IE on Amazon VM) I can trace some events into log file placed on the path: C:\LogFiles. But, if it is called from remote machine, there is no even log files. Locally, on my machine all works fine.The question: is there any way or settings in IIS7 to allow to my WebService to create process that can do everything I want to do? In web.config file I added a line:
<identity impersonate="true" userName="USERNAME" password="password"/> (userName and password are, of course, written correctly in the file).
Also, I tried to use impersonization as it is explained here, but there is no result. My process can't do its job, it cannot even trace actions into log file. Locally, on my machine, everything works fine. how to change settings or whatever into IIS7?
EDIT: In addition to the main question: my WebService is not able even to create log files on the path: C:\LogFiles - although it is able if it started locally, but remotely there is no simple log file that contains some string. How to allow it to create simple text files?
i am using a data list with link button in it that is dynamically populated by String list. i can get accurate path of the clicked link button from the data list, and the next step is to open that document. i am using process.start() method to open pdf file but it does not open that file.i am using the following code to open pdf file from specific path. Code: protected void lnkbtnFirstQtrly_Click(object sender, EventArgs e) { try { //dirCustom is the DirectoryInfo variable that is global variable.
I am using asp.net 2005, and my deployement server is Windows Server 2003.
I am invoking a .bat (which executes some cmd) file from my asp.net page.
But the cmd prompt not getting invoked . the application is waiting for long time in Process.Start() and after some time i am getting asp.net time out error.
Note : a. Same application is working in another production server with windows 2003
b. i have checked with giving impersonation = true - It doesnt worked
c. I have checked with gsetting identity as 'Local System' , 'Local Server'in th eApplication pool of the IIS.