Solved

Transfer files from one server to another using httprequest

Posted on 2008-10-16
3
796 Views
Last Modified: 2013-12-17
I need to be able to transfer files between 2 web servers on totally different domains.  I was told that I can post a file from one server to an ashx handler on the other server using the publicly accessible URLs (and some basic authentication).  So far, all my code does is spin its wheels when


StreamWriter myWriter = null;

            HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create("http://server2");
            objRequest.Method = "POST";
            FileStream fs = new FileStream(
 "\defaultsmall.jpg",FileMode.Open,FileAccess.Read);
            byte[] data = new byte[fs.Length];
            fs.Read(data,0,Convert.ToInt32(fs.Length));
            fs.Close();
            objRequest.ContentLength = data.Length;
            objRequest.ContentType = "application/x-www-form-urlencoded";
            myWriter = new StreamWriter(objRequest.GetRequestStream());
            myWriter.Write(data);
            myWriter.Close();
            string result = "";
            HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
            using (StreamReader sr =
               new StreamReader(objResponse.GetResponseStream()))
            {
                result = sr.ReadToEnd();
                sr.Close();
            }

My handler code is just :

public class TransportF : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {
        context.Response.Write("done");
           }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}


I understand that my handler code is lacking, but right now im focusing on the page that is actually trying to post the file.  Currently, it is giving me:

The request was aborted: The request was canceled. at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean aborting) at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeState) at System.Net.ConnectStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.IO.StreamWriter.Dispose(Boolean disposing) at System.IO.StreamWriter.Close()

when I try to close myWriter.  I know ive got a ways to go to get this to work, or maybe Im not even on the right track, but I cant seem to find any code examples that are helping.  Any advice would be greatly appreciated!!!
0
Comment
Question by:Skeletor11
3 Comments
 
LVL 13

Accepted Solution

by:
TechTiger007 earned 500 total points
ID: 22739087
You can do this by creating an aspx file with fileupload control in it. You can post the file to this page from the other page

Here is a sample that you can start with
http://forums.asp.net/t/1309555.aspx
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

829 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