Task: run application from ASP.NET
for example,
you have a button on ASP.NET page, when press this button - one application is invoked.
the code to run application (for example, notepad) is (on C#)
System.Diagnostics.Process.Start("notepad");
but the problem is that the application doesn't run, i.e. no window is opened.
Note that ASP.NET code is executed on the SERVER.
Solution:
ASPNET user under which application is run should have appropriate security settings.
1. change local policies for APSNET user:
in WinXP: run secpol.msc
go to Local Policies->User Rights Assignment
find "Deny logon locally" and remove ASPNET user from it.
also find "Deny logon .. terminal" and remove ASPNET user from it.
2. Security for files.
if your application needs also to work with files (open, save, etc) you have to change security settings for the folders to allow user ASPNET modify nedeed files.
to do this:
- In Explorer right button mouse click the folder and select "Properties"
- In Security tab, add "ASPNET" in and give desired permissions (Read, Write, Execute, etc).
To test how it works without starting ASP.NET site you can try run in Windows command line:
runas /user:ASPNET "notepad.exe"
it asks you for the password of ASPNET user. enter the password.
if everything is done correct you will see opened application (notepad in our example) in new window.
I've tried this on my Windows XP Professsional and it worked fine.
Read more
- Unable to Start a Process from ASP.NET
http://support.microsoft.com/kb/555134
- ASP.NET Impersonation
http://msdn.microsoft.com/en-us/library/aa719560.aspx
- How to configure the process identity for the ASPNET account in ASP.NET 1.1 when you use IIS 5 Isolation mode in IIS 6.0 on Windows Server 2003
Подписаться на:
Комментарии к сообщению (Atom)
4 комментария:
thank you.
your blog http://asp-net-example.blogspot.com/ is organized very well.
Please help me.
I added a macro to MS WinWord to print any DOC file to default printer that is a PDF writer. (mPrintDefault is macro name)
Now I write a simple code in ASPX page, to convert a sample DOC file to PDF format. (Using System.Diagnostics)
The problem is that every time I run the page, winword.exe is called by Network Service account and is remained in task bar and nothing else!
I can run below line in RUN command prompt with success:
"c:\Program Files\Microsoft Office\OFFICE12\WINWORD.EXE" "C:\test\sample.doc" /mPrintDefault /q /n"
But in ASPX page no success.
Before this, I used some other components to do this conversion. (DOC2PDF).
With local users like Administrator it was OK but within ASPX pages was unsuccessful. Every time, winword.exe was called by IUSER or NetworkService and remained in taskbar without success or result.
How I can fix this problem?
I changed all permissions for target directory to WRITE, but no success.
Best Regards
Ali
OS is Windows 2003
Code is:
====================
Partial Class test_diag
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim psi As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo()
psi.FileName = "c:\Program Files\Microsoft Office\OFFICE12\WINWORD.EXE"
psi.Arguments = "C:\test\1.doc""/mPrintDefault /q /n"
System.Diagnostics.Process.Start(psi)
End Sub
End Class
Do you need it to work under Windows Server or Windows XP ?
Let me know under which user account you see winword.exe in process list.
if you see winword.exe run under NetworkService account in process list - then i suspect you need some more steps.
Отправить комментарий