Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / September 2007

Tip: Looking for answers? Try searching our database.

Old Dos Program from asp.net website

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
wmotter - 13 Sep 2007 16:52 GMT
I have a requirement to execute a legacy DOS program from within an
ASP.NET Website.  I have it working in my sandbox machine but when I
put it live and select the option via asp:button the site simply
refreshes and no new window with said DOS application appears.  The
application is present in the task list on the server.  The
environement is windows 2003 with IIS 6.0.  I have checked the 'Allow
serviec to interact with desktop' check box in the IIS Admin services
and have modified the  machine.config process model tag to
<processModel userName="SYSTEM" password="AutoGenerate" /> as per the
msdn article 'Unable to Start a Process from ASP.NET'  (not sure that
is exactly what I should put).  I have tried to modify the IIS_WPG
group to allow system privileges and even assigned it adminstrator
rights for a bit to see if that did anything.  I have also played
around with the ASPNET account in IIS and gave in admin privileges to
see if that does anything.  I added the process code that starts the
app below but since I see it in the task list I assume that is good.
I can't think of anything else I can do any help would be appreciated.

System.Diagnostics.Process cmd = new System.Diagnostics.Process();
       cmd.StartInfo.FileName = "cmd.exe";
       cmd.StartInfo.RedirectStandardInput = true;
       cmd.StartInfo.RedirectStandardOutput = true;
       cmd.StartInfo.CreateNoWindow = true;
       cmd.StartInfo.UseShellExecute = false;
       bool started = cmd.Start();
       if (started)
       {
           Button btn = (Button)sender;
           string arg1 = btn.CommandArgument.ToString();
           cmd.StandardInput.WriteLine(@"D:\wincmd\TotalCmd.exe",
arg1);
           cmd.StandardInput.Flush();
           cmd.StandardInput.Close();
       }
Mark Rae [MVP] - 13 Sep 2007 17:11 GMT
> I have a requirement to execute a legacy DOS program from within an
> ASP.NET Website.  I have it working in my sandbox machine

What are you actually expecting to happen here...?

Presumably, your sandbox machine is the one at which you're sitting while
you're developing...?

> System.Diagnostics.Process cmd = new System.Diagnostics.Process();

Which will try to run on the webserver, not a client machine...

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net

wmotter - 13 Sep 2007 18:11 GMT
> > I have a requirement to execute a legacy DOS program from within an
> > ASP.NET Website.  I have it working in my sandbox machine
[quoted text clipped - 11 lines]
> Mark Rae
> ASP.NET MVPhttp://www.markrae.net

Thanks for the response. I am running my website local (localhost on
the 'sandbox' machine) using IIS 5.0  and what happens is a second
window pops with the dos application executing when I select a button
on the asp.net website.  You have raised an issue I am unsure about
and that is running a DOS app from an asp.net web site.  Can I execute
a dos app on the web server from an asp.net website so that an
individual can view/use it from their client machine.  I would think
there might be something inherently prohibited about this from a
security standpoint but maybe that is why I need to jump through all
of these permission hoops.  BTW, I log on as sys admin to the web
server that is running the live site in question and try to execute
this scenario to no avail.  This server is an internal server not
accessible outside of the office.
Mark Rae [MVP] - 13 Sep 2007 18:22 GMT
> Thanks for the response. I am running my website local (localhost on
> the 'sandbox' machine)

That's what I thought...

> Can I execute a dos app on the web server from an asp.net website...

Yes.

...so that an individual can view/use it from their client machine.

No.

> I would think there might be something inherently prohibited about this
> from a security standpoint but maybe that is why I need to jump through
> all
> of these permission hoops.

It's nothing to do with security - it's simply that ASP.NET is running on
the server, and that's where any processes which ASP.NET initiates will
run...

> BTW, I log on as sys admin to the web server that is running the live site
> in
> question and try to execute this scenario to no avail.

That won't make any difference.

> This server is an internal server not accessible outside of the office.

Irrelevant...

What does this DOS app do? Why does someone need to watch it run...?

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net

Juan T. Llibre - 13 Sep 2007 18:36 GMT
re:
!> ...so that an individual can view/use it from their client machine.

!> No.

The standard output (stdout) could be captured and displayed, couldn't it ?

Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================

>> Thanks for the response. I am running my website local (localhost on
>> the 'sandbox' machine)
[quoted text clipped - 26 lines]
>
> What does this DOS app do? Why does someone need to watch it run...?
Mark Rae [MVP] - 13 Sep 2007 18:54 GMT
> re:
> !> ...so that an individual can view/use it from their client machine.
[quoted text clipped - 3 lines]
> The standard output (stdout) could be captured and displayed, couldn't it
> ?

Oh sure, but I got the impression that the OP needs to have user interaction
with the DOS app...

Obviously if that's not the case, then this will present no problem at
all...

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net

Juan T. Llibre - 13 Sep 2007 19:01 GMT
re:
!> Oh sure, but I got the impression that the OP
!> needs to have user interaction with the DOS app...

That won't happen, as you well know...

;-)

Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================

>> re:
>> !> ...so that an individual can view/use it from their client machine.
[quoted text clipped - 6 lines]
>
> Obviously if that's not the case, then this will present no problem at all...
wmotter - 13 Sep 2007 18:55 GMT
> > Thanks for the response. I am running my website local (localhost on
> > the 'sandbox' machine)
[quoted text clipped - 33 lines]
> Mark Rae
> ASP.NET MVPhttp://www.markrae.net

It is not so much they have to watch it run.  It is the old norton
commander application that our Data Processing department has used for
over a decade and the decision was that there was no need to upgrade
since it does everything the DP folks need and there are several
legacy apps integrated with it.  The idea is the DP folks select a
work order when it comes time in the process flow for them them to
take action.  Once the work order is selected they can then bring up
NC to get a list of files that are part of the work order and go to
town.  This was working before with HTML only web site.  Now that I
have had this conversation I think I made a stupid mistake.  The DOS
app needs to be local on each machine that is going to use it (not a
problem since it is an interanl app). If so, humbled again.  But the
question remains can a web app start a local copy of a DOS app
with .net?  Am I off base on this?

Mark thanks for the response and especially the time.  I did not have
anyone here I could bounce this off of and make me think in other
directions.  Got tunnel vision.
Mark Rae [MVP] - 13 Sep 2007 19:10 GMT
> The DOS app needs to be local on each machine that is going to use it
> (not a problem since it is an interanl app).

Ah...

> But the question remains can a web app start a local copy of a DOS app
> with .net?

Absolutely not natively, for fairly obvious security reasons - "format c:"
is a useful utility, but you wouldn't want a website to be able to execute
it on client machines... :-)

Your only hope with this is to write an ActiveX control (or Java applet if
you're not using IE) which will kick the DOS app off, but you'll need to
ramp down your browser security for this...

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net

Mark Rae [MVP] - 13 Sep 2007 19:25 GMT
> Your only hope with this is to write an ActiveX control (or Java applet if
> you're not using IE) which will kick the DOS app off, but you'll need to
> ramp down your browser security for this...

Or you might be able to use the WSH (Windows Scripting Host) Shell object to
launch it:
http://www.pcsupportadvisor.com/Windows_scripting_host_page2.htm

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net


Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.