Solved

Launch an exe from ASP.Net

Posted on 2009-05-18
2
589 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
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

Suggested Solutions

If you are a web developer, you would be aware of the <iframe> tag in HTML. The <iframe> stands for inline frame and is used to embed another document within the current HTML document. The embedded document could be even another website.
SSL stands for “Secure Sockets Layer” and an SSL certificate is a critical component to keeping your website safe, secured, and compliant. Any ecommerce website must have an SSL certificate to ensure the safe handling of sensitive information like…
This Micro Tutorial will demonstrate how to add subdomains to your content reports. This can be very importing in having a site with multiple subdomains.
How to create a custom search shortcut to site-search Experts Exchange using Google in the Firefox browser. This eliminates the need to type out site:experts-exchange.com whenever you want to search the site. Launch your Bookmark Menu: Press 'Ctrl +…

830 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