Bon et bin, je peux lire le fichier sur le serveur mais le client est dans l’incapacite d’ouvir le fichie envoye, apparemment le format (“bitmap” en l’occurence) n’est pas reconnu, et je sais pas pourquoi…
Edit:
et meme en rajoutant
Response.ContentType = “image/bitmap”;
ca ne fonctionne pas
Edit2:
j’ai ouvers le fichier .bmp et il n’y a que du code HTML dedans
J’ai donc fais Response.Close() apres avoir fais le WriteFile mais toujours pareil…
bon, la je seche:
quand je suis en mode debug, le code marche au poil !
quand je suis plus en mode debug, ca me demande mon login et mot de passe pour marcher… ce que je ne veux pas bien sur !
Edit: ok Drealmer, dsl, j’editerai mes messages a l’avenir
Edit2:
Solution plus « courte » mais le probleme de la demande du mot de passe et du login persiste toujours, vous auriez une idee ?
byte[] buffer;
int fileSize = 0;
using (System.IO.FileStream fileStream = new System.IO.FileStream(R.ResultDirectory + this.resultFileName, System.IO.FileMode.Open))
{
fileSize = (int) fileStream.Length;
buffer = new Byte[fileSize];
fileStream.Read(buffer, 0, fileSize);
}
Response.OutputStream.Write(buffer, 0, fileSize);
Response.Flush();
Response.Close();
C’est une bonne chose de faire partager tes découvertes avec tout le monde, mais prends garde au flood, je me suis une fois fait flamer à mort par Glop pour avoir fait deux posts consécutifs sur deux jours : une question, et la réponse que j’avais trouvée.
Tout ce qui est débugging HTTP tu as plusieurs solutions :
un fichier de trace qui contient la trace complète de la requête (testé et approuvé le temps des tests sur une appli. Sur de l’asp.net j’imagine même pas la taille du fichier de trace…). Ca se fait uniquement en modifiant un fichier de conf’
Tu modifies ton fichier .config en rajoutant ça :
[quote]<system.diagnostics>
Je le répète: ça marche en .NET 2.0 beta sur une de mes applis winforms. J’ai pas testé en .NET 1.1, et encore moins sur de l’ASP.NET.
deuxième solution: un proxy HTTP de debugging histoire de catcher ce qui passe au travers. Ma solution préférée.
Bin le truc c’est que ca ne plante pas, ca me demande un login et un mot de passe la ou ca ne devrait pas m’en demander un, je comprends pas.
J’ai peut-etre trouve la raison mais je ne me l’explique pas.
Via une classe C#, je lance un process qui me cree un fichier dans un repertoire en dehors du chemin du site (par ex D:\Appli\R\Results, la ou le site se situe dans D:\Intranet\pegase)
Je souhaite faire deux choses, lire le fichier et le retourner a l’utilisateur (avec le code ci-dessus) tout en le copiant dans l’arborescence du site (visible via http/monserveur/lechemin/lefichier).
Deux soucis:
1- la copie du fichier ne fonctionne pas, le fichier cree fait 0 kb (je crois que je fais un truc du style System.IO.File.Copy(“cheminabsolu”); )
2 - au moment de faire le new FileStream(“D:\Appli\R\Results\monfichier”, File.Open) la lecture du fichier ne se fait pas et a la place, j’ai la fenetre de demande de login/password de IE qui s’ouvre comme si je n’avais pas les droits.
Alors la solution serait-elle de modifier les droits de ce repertoire pour que le groupe/utilisateur ASP.NET puisse y acceder en lecture/ecriture ?
J’avoue ne pas etre persuade de la manipulation a effectuer et je ne vais pas demander inutilement des modifications de droits aux administrateurs de ma societe sans etre certain que ce soit ca.
[quote name=‘Dji’ date=’ 18 Jun 2005, 16:48’]2 - au moment de faire le new FileStream(“D:\Appli\R\Results\monfichier”, File.Open) la lecture du fichier ne se fait pas et a la place, j’ai la fenetre de demande de login/password de IE qui s’ouvre comme si je n’avais pas les droits.
Alors la solution serait-elle de modifier les droits de ce repertoire pour que le groupe/utilisateur ASP.NET puisse y acceder en lecture/ecriture ?[right][post=“369702”]<{POST_SNAPBACK}>[/post][/right][/quote]
IIS envoie une demande d’authentification basique quand le compte windows sous lequel tourne l’application pool n’a pas les droits sur le fichiers demandé. Il demande donc sous quel compte Windows il doit déléguer la demande de droits.
Ton problème est donc uniquement un problème de droits sans doute.