2009-11-23 12 views
0

J'ai créé mon programme selon l'exemple 1 qui a été créé pour .NET Framework 2, mais je l'ai converti en .NET framework 3.5. Comment dois-je modifier ce code pour le faire fonctionner? Comment puis-je déboguer le côté serveur? Le côté serveur semble fonctionner lorsque j'insère manuellement les paramètres dans l'URL, donc le problème doit être dans le code côté client.WebClient ne se connecte pas à IHttpHandler

private void UploadFile(string fileName, System.IO.Stream data) 
{ 
    UriBuilder ub = new UriBuilder("http://localhost:59491/receiver.ashx"); 
    ub.Query = string.Format("filename={0}", fileName); 

    WebClient c = new WebClient(); 
    c.OpenWriteCompleted += (sender, e) => 
    { 
     PushData(data, e.Result); 
     e.Result.Close(); 
     data.Close(); 
    }; 
    c.OpenWriteAsync(ub.Uri); 
} 

private void PushData(System.IO.Stream input, System.IO.Stream output) 
{ 
    byte[] buffer = new byte[4096]; 
    int bytesRead; 

    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0) 
    { 
     output.Write(buffer, 0, bytesRead); 
    } 
} 

1http://www.c-sharpcorner.com/UploadFile/nipuntomar/FileUploadsilverlight03182009030537AM/FileUploadsilverlight.aspx

Répondre

0

Mon point de départ est le spécificateur du port. Sur cet exemple, l'adresse URI de la demande est définie spécifiquement sur le port 3840, mais il ne montre jamais de paramètres de modification pour forcer le serveur Web à utiliser ce port lors de l'hébergement du gestionnaire. assurez-vous que l'URI de la demande utilise le même port que celui que vous utilisez lorsque vous accédez manuellement au gestionnaire à partir d'un navigateur.

EDIT: Je pense que cela doit être, je viens de recréer l'échantillon dans un nouveau projet dans VS2008 en utilisant les cadres les plus récents et tout fonctionne correctement, une fois que j'ai bien réglé le port. En ce qui concerne le débogage du serveur, si vous hébergez la moitié du projet du serveur sur Visual Studio (ce que vous feriez si vous suivez ce type sur l'exemple CSharpCorner), vous devriez déjà déboguer le composant serveur, juste mettre un point d'arrêt dans le codebe derrière le serveur.

Questions connexes