2016-07-15 5 views
0

Le morceau de code suivant est utilisé pour lire un fichier du serveur et le télécharger sur le PC client:WebClient donne l'erreur lors de la lecture fichier .dat

var webClient = new WebClient(); 
webClient.OpenReadCompleted += (s, e) => 
{ 
    using (var fs = (Stream) dialog.OpenFile()) 
    { 
      e.Result.CopyTo(fs); 
      fs.Flush(); 
      fs.Close(); 
    } 
}; 
webClient.OpenReadAsync(GetFileUri(fileToDownload)); 

Lors du téléchargement d'un fichier tout est ok txt. Mais lorsque j'essaie de télécharger un fichier .dat, j'obtiens l'exception suivante: System.Reflection.TargetInvocationException avec une exception interne System.Net.WebException: Le serveur distant a renvoyé une erreur: NotFound.L'Uri est relatif et ne présente pas de problème avec le fichier .txt.

Je n'arrive pas à trouver l'information si cela devrait être possible ou quel pourrait être le problème. L'erreur elle-même ne me donne pas beaucoup. Des pensées?

+0

Est-ce que le serveur renvoie définitivement le fichier pour cette URL? Est-ce que cela fonctionne dans un navigateur? –

+0

Lorsque je mets l'URL dans le navigateur, je reçois ceci: Erreur HTTP 404.3 - Non trouvé La page que vous demandez ne peut pas être servie à cause de la configuration de l'extension. Si la page est un script, ajoutez un gestionnaire. Si le fichier doit être téléchargé, ajoutez une carte MIME. – LittleWhiteFairy

+1

Droite. Donc, c'est le problème - rien à voir avec votre code client. –

Répondre

0

Il manquait un paramètre dans le fichier de configuration. J'avais besoin d'ajouter ce qui suit:

<system.webServer> 
    <staticContent> 
    <mimeMap fileExtension=".dat" mimeType="application/octet-stream" /> 
    </staticContent> 
</system.webServer>