Le titre est réécrit comme suit : La connexion à 127.0.0.1:3446 a été activement refusée par la machine cible
<p>J'utilise le modèle WCF4.0 -REST. J'essaie de créer une méthode pour télécharger des fichiers à l'aide d'un flux.</p>
<p>问题总是发生在</p>
<pre class="brush:php;toolbar:false;">Stream serverStream = request.GetRequestStream();</pre>
<p>流式传输类:</p>
<pre class="brush:php;toolbar:false;">espace de noms LogicClass
{
classe publique StreamClass : IStreamClass
{
public bool UploadFile (nom de fichier chaîne, Stream fileStream)
{
essayer
{
FileStream fileToupload = new FileStream(filename, FileMode.Create);
octet[] bytearray = nouvel octet[10000];
int bytesRead, totalBytesRead = 0 ;
faire
{
bytesRead = fileStream.Read(bytearray, 0, bytearray.Length);
totalBytesRead += octetsRead;
} while (octetsLecture > 0);
fileToupload.Write(bytearray, 0, bytearray.Length);
fileToupload.Close();
fileToupload.Dispose();
}
catch (Exception ex) { throw new Exception (ex.Message); }
renvoie vrai ;
}
}
}</pré>
<p>REST 项目:</p>
<pre class="brush:php;toolbar:false;">[WebInvoke(UriTemplate = "AddStream/{filename}", Method = "POST", BodyStyle = WebMessageBodyStyle.Bare)]
public bool AddStream (nom de fichier de chaîne, System.IO.Stream fileStream)
{
LogicClass.FileComponent rest = new LogicClass.FileComponent();
return rest.AddStream(filename, fileStream);
}</pré>
<p>Windows 窗体项目:用于测试</p>
<pre class="brush:php;toolbar:false;">bouton vide privé24_Click (expéditeur de l'objet, EventArgs e)
{
octet[] fileStream ;
en utilisant (FileStream fs = new FileStream("E:stream.txt", FileMode.Open, FileAccess.Read, FileShare.Read))
{
fileStream = nouvel octet[fs.Length];
fs.Read(fileStream, 0, (int)fs.Length);
fs.Close();
fs.Dispose();
}
chaîne baseAddress = "http://localhost:3446/File/AddStream/stream.txt" ;
Requête HttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(baseAddress);
request.Method = "POST";
request.ContentType = "texte/plain";
Stream serverStream = request.GetRequestStream();
serverStream.Write(fileStream, 0, fileStream.Length);
serverStream.Close();
en utilisant (réponse HttpWebResponse = request.GetResponse() comme HttpWebResponse)
{
int statusCode = (int)response.StatusCode ;
Lecteur StreamReader = new StreamReader(response.GetResponseStream());
}
}</pré>
<p>我已误仍然存在。Existe-t-il une meilleure façon de tester la méthode de téléchargement ? </p>
<p>Trace de la pile : </p>
<blockquote>
<p>À System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, adresse de socket SocketAddress)
à System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& adresse, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)</p>
</blockquote><p><br /></p>