Web Forms :: Best Practice For Starting An External Process From Web App?
Mar 24, 2011
I need to essentially make a command line tool available via a web interface. This tool would need to be run ON the web server, not the client machine. e.g.: someCommand.exe -aSwitch param1 param2 The tool will be in a windows integrated auth web app on an intranet. I have not had to do anything like this before, so I want to find out how others handle this, what is the recommended best practice? a quick google first showed someone using system.diagnostic.process... so to start playing I did something like this, just to see if it works, it does:
[Code]....
I won't be running cmd.exe, that's just to test with. The actual command line tool I will be using is not on my dev machince right now. . is using system.diagnostics.process, processStartInfo, and start method acceptable? my goals:
1. use recommended best practices, especially with regard to security
2. I'd like to start the command, and use ajax to display the commands output as it runs, and of course I need to know if it was successfull or not.
View 5 Replies
Similar Messages:
Apr 13, 2010
I have the following code:
public void BeginConvert(object data)
{
ConverterData cObject = (ConverterData)data;
string argument = string.Format("-i "{0}" -b {1} "{2}"", cObject.Source, compression, cObject.Destiny);
Process converterProcess = new Process();
converterProcess.StartInfo.FileName = ffPath;
converterProcess.StartInfo.Arguments = argument;
converterProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
converterProcess.Start();
converterProcess.WaitForExit();
}
I use it in a webservice, i start it in a new thread and it return exit code 1 (error, i'm trying to do a video convertion with ffmpeg library), i impersonate ASP.NET to use a local account with permissions to read and write files, when i run it in my machine running or debugging it works but know thta the web service is running in IIS doest'n.
View 1 Replies
Dec 21, 2010
First of all, I'm not a pro on IIS configuration topic.With that being said, I got a website written in VB.NET 3.5 Web Forms. I have a small web service, ASMX, running as a part of this website. One page on the website calls the web service with AJAX (jQuery $.ajax function, post). The server is running Windows 2003 and IIS 6.0. The website and the web service are sharing the same Application Pool.
View 2 Replies
Sep 21, 2010
I have a web form used for importing data from a CSV file. It contains a result panel and a result label, which either show a success message or an error message after the import process. Let me say here I know the page should not be doing the import, but this is legacy code and the client expects only small changes.
My problem is that the result message (label) retains it's previous content and visibility during the next import process, because clearing it during Page_Load or at the beginning of the import method only has effect when the import method is complete and thus the postback is complete.
At the moment, the only solution I can see is to move the import code into a separate class (as it should be), call the import method asynchronously, clear the result message, and thne set then result message when the complete or error callback from the import process is called.
View 1 Replies
Sep 18, 2010
We need assistance with a portion of a major web application project scheduled to begin user testing within 10 days. The troublesome part of the code calls an external application when a button is clicked in Web page. When run from a command prompt or bat file, the external application, App.exe, runs perfectly producing the desired result. We created a test page and a small console application, Con.exe, to test the button code with a known quantity. The test application runs perfectly when the button in the Web page is clicked. However when we change the code to run App.exe instead of Con.exe, the App.exe code will not execute. We even tried creating a bat file to execute App.exe. Like the exe, the bat file executes from the command prompt or when double-clicked,but fails to run when called as a process from the button click event. Can anyone assist us? Here is the C# code: (.Net 3.5 sp1)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Diagnostics;
namespace WebButtonTest
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
protected void Timer1_Tick(object sender, EventArgs e)
{
int checkNumber = 0;
if (Session["checkNumber"] != null).......
[Code....]
View 2 Replies
Sep 11, 2010
Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.
View 2 Replies
Jan 11, 2010
I am have made a website which entertains its users(authenticated) to send sms. Website is available to users within my local network and outside (internet). I have designed two libraries, one for sending receiving sms and other one for processing those sms messages....But whenever page is refreshed, all the objects are initialized again blah blah resulting error for port 'Acess denied' For that I used object serialization etc. But I want to put my whole sms related work to separate process and use MSMQ between my website and sms process for communication. Please guide me that how can I run that separate sms process all the time and taking commands from website to send sms to whom etc?
Requirements:
1. SMS Process (background) should not have any interface but to communicate with using MSMQ only.
2. Website should be able to communicate with that SMS Process at any time using MSMQ, that is commands to send sms to whom, show received sms etc.
I am complete with all my website and sms engine work. All put all this in website but couldnt get reliablility. Please just guide me how and where to start for MSQM?
View 1 Replies
Feb 24, 2010
Im deploying my website onto my new server (windows 2003) from my local pc (windows 7) and my local homeserver (windows 2008) and have run in to a issue.
I have a process that starts up with the below code. It is passed a video file which gets converted.
System.Diagnostics.ProcessStartInfo StartInfo = new System.Diagnostics.ProcessStartInfo(Command, Parameters);
Them problem I have is on my new windows 2003 server it fails to work. No error or anything. Looking at the server and its taskmgr.exe I see the Process start but nothing happens.
Looking into it, everyone seems to say I need to have impersonate="true" in the webconfig which I do have, I currently have it set to the Administrator account which I use to log into remote desktop (I assume this is fine???)
<identity impersonate="true" userName="Administrator" password="********" />
This still doesn't work.. Looking in the taskmgr.exe the process is started with the username ="NETWORK SERVICE" ...
View 1 Replies
Mar 9, 2011
In fact, I DO NOT want to ask a question but to share one solution to this. One cause of this problem is you did not register your sql express on iis.I installed .net 3.5 sp1, then ran aspnet_iis -i, then installed sql express 2005 advanced. Yes, here came the notorious alert. So, I ran aspnet_regiis again and everything is OK.Run aspnet_regiis before you have installed sql express.
View 1 Replies
Apr 3, 2010
I've developed a popup email .aspx used on our intranet based web app that is auto generated with .pdf's attached. I'm developing with VS 2008 ASP.Net 3.5 C# and System.Net.Mail.MailMessage. I can create and send the email with no issues. The problem is with any attempt to open or delete the attachments I get the above error. The .pdf's a copied with the following code:
FileStream fsr = new FileStream(inFilename, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader reader = new BinaryReader(fsr);
byte[] bytes = new byte[fsr.Length];
reader.Read(bytes, 0, bytes.Length);
FileStream fsw = new FileStream(outFileName, FileMode.Create, FileAccess.Write, FileShare.Write);
BinaryWriter writer = new BinaryWriter(fsw);
writer.Write(bytes, 0, bytes.Length);
// clean up
writer.Flush();
writer.Close();
writer = null;
fsw.Close();
fsw.Dispose();
fsw = null;
reader.Close();
reader = null;
fsr.Close();
fsr.Dispose();
fsr = null;
Later after sending the email I:
mailMessage.Dispose();
mailMessage = null;
foreach (string fileName in attachments)
{
if (File.Exists(fileName))
File.Delete(fileName);
}
The error occurs at: the File.Delete(fileName);
how I can delete or reopen these files after sending the email?
View 9 Replies
Nov 6, 2010
My code is that I want to create a log file and log it upon a new user browsing the site. However, what i did was I put in a 6 second delay and then used another browser to access the page. And it threw an Exception saying it is being used by another process which is true. So how come I set it so that, if IT is being used by another process, WAIT and retry every 500 milliseconds until it becomes free/available?
here's the code:
protected void Page_Load(object sender, EventArgs e)
{if (!IsPostBack) // if this is the first time page loads, set k to 1
{ lognewuser();
}}
[Code]....
View 1 Replies
Sep 7, 2010
I've written a aspx.net(C#) page that after the user has done what they do on the page they hit a Submit button. The Submit button
1) takes the work the users was producing on the page and writes it to a file.
2) attempts to execute a batch file.
The call to the batch file is executed via:
protected void Execute123EDI()
{
try
{
string File = @"c:80sAdminSendV80s.bat";
lblCancelled.Text = lblCancelled.Text + File;
Process proc = new System.Diagnostics.Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.LoadUserProfile = false;
proc.StartInfo.UserName = "administrator";
proc.StartInfo.RedirectStandardOutput = true;
System.Security.SecureString secPass = new System.Security.SecureString();
string paswd = "123abc";
for (int i = 0; i < paswd.Length; i++)
{
secPass.AppendChar(paswd[i]);
}
proc.StartInfo.Password = secPass;
proc.StartInfo.FileName = File;
proc.Start();
FileStream fs = new FileStream(@"c:80sAdminSendV80sOutput.log", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.Write(proc.StandardOutput.ReadToEnd());
proc.WaitForExit();
sw.Close();
proc.Close();
}
catch(Exception ex)
{
lblDebug.Text = lblDebug.Text + ex.Message + "<br/>";
}
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.
View 2 Replies
Jul 21, 2010
I know that similar questions have been asked all over the place, but I'm having trouble finding one that relates directly to what I'm after.
I have a website where a user uploads a data file, then that file is transformed and imported into SQL. The file could be up to 50mb in size, and some times this process can take 30 minutes or sometimes even longer.
I realise I need to palm off the actual work to another process, and poll that process on the web page. I'm wondering what the best approach would be though? Being a web developer by trade, I'm finding all this new Windows Service stuff a bit confusing, and I just wanted somewhere to start.
So:
Can I do / should I being doing this with a windows service? if so, how?
Should I use WCF? If this runs under IIS, will I have problems with aspnet_wp.exe recycling and timing out my process?
clarifications
The data is imported into sql, there's no file distribution taking place.
If there is a failure, it absolutely MUST be reported to the user. The web page will poll every, lets say, 5 seconds, from the time the async task begins, to get the 'status' of the import. Once it's finished another response will tell the page to stop polling for status updates.
queries on final decision
ok, so as I thought, it seems that a windows service is the best idea. So as to HOW to get it to work, it seems the 'put the file there and wait for the service to pick it up' idea is the generally accepted way, is there a way I can start a process run by the service, without it having to constantly be checking a database table / folder? As I said earlier, I don't have any experience with Windows Services - I wondered if I put a public method in the service, can I call it somehow?
View 2 Replies
Feb 26, 2010
I'm working on an ASP.net app I'm trying to execute a process remotely , using System.Diagnostics.Process class here's my code:
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:TestCommand.exe");
startInfo.Domain = "myDomain";
startInfo.UserName = "MyUserName";
SecureString sec = new SecureString();
foreach (char item in "MyPassword")
{
sec.AppendChar(item);
}
sec.MakeReadOnly();
startInfo.Password = sec;
startInfo.UseShellExecute = false;
Process.Start(startInfo);
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
View 1 Replies
Dec 25, 2010
Dear ladies and sirs.
I have a .NET infra code running both within the IIS worker process and within a desktop client app. How can the .NET code determine whether it is running within an IIS worker process?
I know that I could check the name of the process (w3wp.exe, for instance), but I would like a more robust approach. I wish to make a side note. This is not a production need. I need this information to enable certain scenarios useful during the development and testing phase. Specifically to ease the testing of secure vs non secure configurations.
View 3 Replies
Jan 26, 2010
When I hit the run button (in my Default.aspx), a process starts (this process contacts a webservice to get some files, etc). How do I: Ensure that only a single process is running at a time (i.e. if I refresh the browser, I don't want to start the process a second time)Track progress - there are 4 points of the process (at 25%, 50%, 75%, 100%) that I want to track, and when each part completes, I want to update the progress bar. I have a status object for the running process, but the question is how to update the progress bar automatically? Do I need to use threads to achieve the above two?
View 1 Replies
Mar 28, 2011
I am having the text file which is used to track all the ip address which is available in the network and replace the content from"Reply from 172.29.116.3: bytes=32 time=1ms TTL=255" to 172.29.116.3.
For this task i am having 2 functions 1.runCMD() Function is used to create a file which ping all the ip address between 3 to 254 ("Reply from 172.29.116.3: bytes=32 time=1ms TTL=255").
2.Another function textFileReplace() which is used to replace the text from "Reply from 172.29.116.3: bytes=32 time=1ms TTL=255" to 172.29.116.3.
This process will continue every 30 minutes..
But i am having the error while accessing the function textFileReplace() as The process cannot access the file 'C:inetpub' because it is being used by another process.
View 4 Replies
Jun 17, 2010
The following code for the menu I have in my master page:
<asp:SiteMapDataSource runat="server" ID="SiteMapDataSource" StartFromCurrentNode="false" ShowStartingNode="false" SiteMapProvider="SiteMap" />
View 2 Replies
May 20, 2010
I am new for integrating Facebook to a web application. Please anybody can guide me which dll is best and sample code to proceed.
View 1 Replies
May 13, 2010
I have this regular expression, for currency, which only accepts number and a decimal, however it takes digits starting with zero, like 09788,08383 how can i eliminate this bug from this regular expression here is the regular expression ^d{1,9}(.d{1,2})?$
View 6 Replies
Feb 18, 2010
I am looking for the code for forforming the following task though jQuery in asp.net there is a search box on my web page I want that If I type any letter in the text box all the name of that letter stored in user table of the database should display in a list and so on pattern matching.
suppose I type "a" the
Allen
Ajax
Amir
Abhi
should be display in the list below the search text box.. and if I type "al" the "allen" should display
View 3 Replies
Jul 23, 2010
I have a stored procedure which fetches data after joining 8-9 tables and inserts that into a temp table. It was running fine till now, but now when the amount of data fetched have exceeded 20000, the SP is breaking. I have debugged the sp and found that this main query is failing after returning arround 15000-16000 records.
The error message says Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. I know what is deadlock, but when i checked with SP_LOCK stored proc i only found that my process is running on database only. So how is this getting deadlocked when there are no other processes running simultaneously on server.
View 4 Replies
Feb 10, 2010
When I delete all files from the directory path. then it will give me this error The process cannot access the file because it is being used by another process. How to solve this?
View 10 Replies
May 12, 2010
I have an asp.net website and I allready did .Dispose() here is my code below;
try
{
MailMessage newMail = new MailMessage(MailFrom, MailTo,
MailSubject, MailMsg);
if (MailAttachment != "")
{
Attachment data = new Attachment(MailAttachment,
MediaTypeNames.Application.Octet);
newMail.Attachments.Add(data);
}
newMail.BodyEncoding = System.Text.Encoding.UTF8;
newMail.IsBodyHtml = true;
SmtpClient client = new SmtpClient("192.168.2.205");
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Send(newMail);
newMail.Attachments.Dispose();
newMail.Dispose();
DeleteAttachment(MailAttachment);
lblSuccess.Text = "Başvurunuz alınmıştır teşekkürler.";
lblSuccess.Visible = true;
ClearForm();
}
catch (Exception ex)
{
lblSuccess.Text = ex.Message;
//lblSuccess.Text = "Bir sorun oluştu bir daha deneyiniz.";
lblSuccess.Visible = true;
}
But i' m getting the same error, it' s running fine in my localhost but in server i' m getting this error. How can i fix it?
View 2 Replies
Feb 8, 2010
I am getting binary data from a SQL Server database field and am creating a document locally in a directory my application has permissions. However I am still getting the error specified in the title. I have tried numerous suggestions posted on the web including those suggested in previous posts on Stackoverflow. I have also used ProcessExplorer > Find Handle to locate the lock and it returns nothing as if the file is not locked.
I am using the code below to save the file to the file system and I then try to copy this file to a new location later in the application process within another method. It is this copy method that takes the path of the newly created file that throws the exception.
The file itself is created with its content and i can open it through Windows Explorer without any problems.
Am I missing something completely obvious? Am I creating the file correctly from the database?
// Get file from DB
FileStream fs = new FileStream(
"C:myTempDirectorymyFile.doc", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter br = new BinaryWriter(fs);
br.Write("BinaryDataFromDB");
fs.Flush();
fs.Close();
fs.Dispose();
// Copy file
File.Copy(sourceFileName, destinationFilename, true);
View 7 Replies