Solved

Launch an exe from ASP.Net

Posted on 2009-05-18
2
590 Views
Last Modified: 2012-05-07
I've been banging my head against the wall for a couple days now on this issue.  My ultimate goal is to launch a ghostscript executable from a WCF service.  My troubles began soon as I moved this create process under IIS.  The personal web server in Visual Studio worked without a hitch.  I'm also able to launch this from WinForms without any issues.  But the security around IIS is a tough nut to crack.  This is for a good reason of course.

I have tried many different approaches, including impersonating, all kinds of different security tweaks, none of which have worked.  I have moved the create process code into a code behind asp.net page in order to deal with IIS security directly.  I am impersonating a fully authorized domain account in Web.Config.  My App Pool identity is set to this same activity directory account.  The exe is sitting in the bin folder of the asp.net site, I have given the folders & site full permissions.  Is there anything left to do?  The below code hangs on the WaitForExit() method but works fine from Windows App.

If all else fails this could be moved into a Windows Service possibly, the security is probably not as limiting as IIS.  Also I'm learning that WCF can be self-hosted rather than using IIS.  

Does anyone have experience with this issue and have recommendations?  
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(GhostScriptPath);
        startInfo.UseShellExecute = false;
        startInfo.RedirectStandardInput = true;
        startInfo.RedirectStandardOutput = true;
        startInfo.RedirectStandardError = true;
        startInfo.WorkingDirectory = @"c:\aTemp";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.Arguments = " -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=" + Convert.ToString(1) + " -sDEVICE=ljet4 -sOutputFile=\"\\\\spool\\" + @"\\CONFP01\CON-2-M4345-01" + "\" \"" + pathAndFileName + "\"";
        
        // Start the process
        System.Diagnostics.Process proc = System.Diagnostics.Process.Start(startInfo);
        proc.WaitForExit(); //Hangs on this line of code
        proc.Close();

Open in new window

0
Comment
Question by:BenLuckhardt
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 12

Expert Comment

by:williamcampbell
ID: 24416996
Have You Tried P/Invoke with ShellExecute and WaitForSingleObject? Might give you more options.

Also you can write ISAPI Plugins for IIS which might work aswell.
0
 

Accepted Solution

by:
edenrockstar earned 500 total points
ID: 24490140
Further head banging has helped me narrow down a couple solutions.  

+ WCF and a background worker thread for handling the long delay
+ WCF + MSMQ
+ Plain ole' MSMQ and using a console app to initialize the ghostscript executable.  


0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
A phishing scam that claims a recipient’s credit card details have been “suspended” is the latest trend in spoof emails.
Google currently has a new report that is in beta and coming soon to Webmaster Tool accounts. This Micro Tutorial will highlight new features for Google Webmaster Tools.
This Micro Tutorial will demonstrate how nuggets on the Web are formatted by using Chrome Developer Tools. These tools would not only view the site's CSS but it can also modify it and save the CSS to use on your own site.
Suggested Courses

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question