Maison  >  Questions et réponses  >  le corps du texte

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>
P粉497463473P粉497463473440 Il y a quelques jours615

répondre à tous(2)je répondrai

  • P粉254077747

    P粉2540777472023-08-28 12:21:14

    Vous n’avez pas besoin de redémarrer votre ordinateur. Au lieu de cela, redémarrez IIS.

    répondre
    0
  • P粉270842688

    P粉2708426882023-08-28 09:47:01

    « Rejet actif » signifie que l'hôte a envoyé une réinitialisation au lieu d'un accusé de réception lorsque vous avez essayé de vous connecter. Ce n'est donc pas un problème dans votre code. Un pare-feu bloque la connexion ou le processus hébergeant le service n'écoute pas sur le port. Cela peut être dû au fait qu'il ne fonctionne pas du tout ou qu'il écoute sur un autre port.

    Après avoir démarré le processus d'hébergement du service, essayez d'utiliser netstat -anb (nécessite des droits d'administrateur) pour vérifier qu'il fonctionne et écoute sur le port attendu.

    Mise à jour : sous Linux, vous devrez peut-être faire netstat -anp.

    répondre
    0
  • Annulerrépondre