Click here to Skip to main content
Sign Up to vote bad
good
See more: C#ASP.NET
Following is my code and not working on iis. But working on local.
This code is to convert up file to wav file and play after.
 
It convert and store audio file on local but not on IIS
 

 public void ExecuteCommandSync(object command)
    {
        try
        {
            string exepath;
            string AppPath = Request.PhysicalApplicationPath.Replace("http:\\", "");
            ////Get the application path
            //exepath = Server.MapPath("Up2Wav.exe");
            exepath = Server.MapPath("tmp/Up2Wav.exe");
            string strCmd = exepath + " " + command;
            StreamWriter _testData = new StreamWriter(Server.MapPath("data.txt"), true);
            _testData.WriteLine(strCmd);
 

            System.Diagnostics.ProcessStartInfo procStartInfo =
                new System.Diagnostics.ProcessStartInfo("cmd", "/c " + strCmd);
            // The following commands are needed to redirect the standard output.
            // This means that it will be redirected to the Process.StandardOutput StreamReader.
            procStartInfo.RedirectStandardOutput = true;
            procStartInfo.UseShellExecute = false;
            // Do not create the black window.
            procStartInfo.CreateNoWindow = true;
            // Now we create a process, assign its ProcessStartInfo and start it
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo = procStartInfo;
            proc.Start();
            // Get the output into a string
            string result = proc.StandardOutput.ReadToEnd();
            // Display the command output.
            Console.WriteLine(result);
            _testData.WriteLine(result);
            _testData.Close();
            _testData.Dispose();
       
        }
        catch (Exception objException)
        {
            // Log the exception
        }
    }
Posted 5 Oct '12 - 2:24
Edited 5 Oct '12 - 3:09

Comments
Jonathan [Darka] - 5 Oct '12 - 8:30
Do you know which line it's failing on?

2 solutions

Like a lot of people here, you seem to have serious confusion about ASP.net and the client-server architecture. Your C# code runs on the web server – not on the client. Its job is to create markup or other resources (e.g. images, scripts etc) which are sent to the browser. All that happens on the client side (i.e. the machine with the browser) is that the markup or resources are rendered, and JavaScript code is run.
 
You cannot make a C# function which will run on the client machine. Anything which you do in the code behind will only ever happen on the server. Spawning processes very rarely makes sense on the server, and in fact most professional hosting environments won't give permission to the ASP.net engine to do so.
 
This confusion is understandable considering that Microsoft wrote ASP.net in a way which deliberately blurs the boundary between client and server, i.e. controls that are rendered on the client 'exist' on the server, and setting properties in code behind results in (after a page refresh or AJAX call) values changing on the client, or vice versa. But it is still a standard web server and browser client architecture underneath, and it's important to understand that.
 
In this case, if the WAV converter doesn't have an embeddable public API, you still actually do need to spawn a process to run it. However, you need to respond to the client when the process finishes and give a URL that the client can use to retrieve the WAV file.
  Permalink  
Comments
ravi sharma11 - 6 Oct '12 - 0:19
My up audio file is on server and my converter u p2wav.exe is also on server. How can I have to pass mu source and destination file in up2wav.exe on server how to do it.
BobJanova - 9 Oct '12 - 4:48
um, read the last sentence of my answer ...
System.Diagnostics.Process.Start is working fine.
 
But it always runs on the Server, not the Client - that is where the code in the code behind is executed.
 
So when you say Process.Start, the application runs just as it used to - on the server. When you were developing, the server and client were the same machine, so it seemed to exactly what you wanted.
 
You cannot run any application on the client from the server: security forbids it.
  Permalink  
Comments
ravi sharma11 - 6 Oct '12 - 0:20
My up audio file is on server and my converter u p2wav.exe is also on server. How can I have to pass mu source and destination file in up2wav.exe on server how to do it.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Your Filters
Interested
Ignored
     
0 Sergey Alexandrovich Kryukov 449
1 Arun Vasu 253
2 OriginalGriff 210
3 CPallini 163
4 Aarti Meswania 158
0 Sergey Alexandrovich Kryukov 10,129
1 OriginalGriff 7,749
2 CPallini 4,181
3 Rohan Leuva 3,482
4 Maciej Los 2,999


Advertise | Privacy | Mobile
Web03 | 2.6.130523.1 | Last Updated 5 Oct 2012
Copyright © CodeProject, 1999-2013
All Rights Reserved. Terms of Use
Layout: fixed | fluid