IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Probl�me avec System.Diagnostics.Process.Start();


Sujet :

ASP.NET

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut Probl�me avec System.Diagnostics.Process.Start();
    Bonjour � tous!

    J'ai un gros probl�me, je fait une application en ASP.NET et j'utilise un System.Diagnostics.Process.Start(lienDuFichierSurLeServeur) pour pouvoir ouvrir un fichier de n'importe quel type.
    Cela fonctionne tr�s bien en local mais par contre �a ne fonctionne pas quand je le teste sur le serveur de l'entreprise.

    J'ai fait des recherches et je pense que c'est d� au droits de l'application ASP.NET.
    Voil� ce que j'ai trouv�, c'est sens� donner les droits de l'utilisateur connect� � l'application (si j'ai bien compris) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <identity impersonate="true" />
    Ceci est � mettre dans le fichier web.config (ref http://msdn.microsoft.com/en-us/libr...8VS.71%29.aspx)

    Quand je test cette configuration en local, tout fonctionne normalement.
    Mais si je le mets sur le serveur j'obtiens cette erreur � l'ajout d'un fichier :
    Logon failure: unknown user name or bad password.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.IO.IOException: Logon failure: unknown user name or bad password.


    Source Error:

    Line 805: {
    Line 806: //si il n'existe pas, on le copie dans son emplacement.
    Line 807: FileUpload1.PostedFile.SaveAs((string)ViewState["emplacement"] + "//" + fileName);
    Line 808:
    Line 809:
    des id�es?
    Merci d'avance!


    PS : j'arrive � ajouter et supprimer les fichiers qui sont sur le serveur avec asp.net. Le probl�me est uniquement des les ouvrir avec System.Diagnostics.Process.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 526
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 526
    Par d�faut
    Je vous conseil vivement de ne pas faire de "System.Diagnostics.Process.Start(lienDuFichierSurLeServeur)", c'est extr�mement dangereux et je ne vois pas d'utiliser autre que faire un trou de s�curit�.

    C'est "System.Diagnostics.Process.Start" ou "FileUpload1.PostedFile.SaveAs" qui pose probl�me ?

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Salut bacelar!
    Merci de ton aide .
    Mon probl�me est uniquement du au Process.Start().

    J'ai lu qu'enfait le "Process.Start" ne fonctionne pas chez le client mais uniquement sur le server et en local parce qu'en local je suis client et serveur.

    J'ai opter pour un syst�me de "t�l�chargement" voici mon code jusqu'� maintenant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
            try
                {
                    string filename = bouton.CommandName;
     
     
                        string path = bouton.CommandArgument;
     
                        System.IO.FileInfo file = new System.IO.FileInfo(path + "\\"+filename);
     
     
                            Response.Clear();
     
                            Response.AddHeader("Content-Disposition", "attachment; filename=" + '"'+file.Name+'"');
     
                            Response.AddHeader("Content-Length", file.Length.ToString());
     
                            Response.ContentType = "application/octet-stream";
                            Response.WriteFile(file.FullName);
     
    // Response.End() me génère une erreur.
                            Response.End(); 
     
     
     
     
                }
                catch (Exception exception)
                {
     
                    return;
                }
    Tout � l'air de fonctionner normalement (en tout cas en local) le seul probl�me est que "Response.End()" me g�n�re une erreur, mais sans Response.End() cela fonctionne aussi O_o sans g�n�rer d'erreur.

    Voici l'exception g�n�rer par Response.End() :

    Impossible d'�valuer l'expression, car le code est optimis� ou un frame natif se trouve en haut de la pile des appels
    Est-il indispensable?

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 526
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 526
    Par d�faut
    Je comprends de moins en moins, vous downloadez le code vers le client (le browser) ou vous uploadez le code vers le serveur Web (IIS) ?

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Le client t�l�charger les fichiers qui sont sur le serveur.

    Le fileupload �tait une fonctionnalit� qui plantait � cause du <identity impersonate="true" />

    Mais j'ai laiss� tomb� cette configuration donc pas de soucis pour le fileupload.

    Maintenant je me base sur le t�l�chargement.

    Merci de ton int�r�t.

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 526
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 526
    Par d�faut
    STOP.

    C'est quoi le probl�me initial ?
    On verra la solution apr�s.

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut


    Probl�me initial :

    Permettre au client d'ouvrir gr�ce � l'application Web, n'importe quel type de fichier qui se trouve sur le serveur.

    Fonctionnement:

    Les documents sont dans une gridview avec un bouton ouvrir. Quand le client clique sur ouvrir, j'aimerais qu'il puisse justement ouvrir le document (qui peut �tre .pdf, .doc, .jpg ou m�me .xls.

  8. #8
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 526
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 526
    Par d�faut
    Le "Response.ContentType" doit correspondre au type du fichier.
    Le viewer du type de fichier doit d�j� �tre sur le client.
    Il n'y a pas de "Process.Start" dans le p�rim�tre.

  9. #9
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant �tudes et d�veloppement
    Inscrit en
    D�cembre 2006
    Messages
    1 344
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant �tudes et d�veloppement
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 1 344
    Par d�faut
    Comme l'a soulign� Bacelar, un Process.Start n'a rien � faire l�, car tu ouvrirais le document sur le serveur et le client ne le verrait jamais.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'h�sitez pas � y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut r�pondre � la majorit� de vos questions.

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Merci de votre aide! J'utilise maintenant "Response" et �a fonctionne!

    �a fonctionne tr�s bien en test en local.
    �a fonctionne tr�s bien sur le serveur avec IE mais avec Firefox �a plante au rafraichissement de la page O_O avec une erreur XML "al�atoire" qui veut absolument rien dire.

    exemple d'une de mes erreurs sous FF :
    Erreur d'analyse XML : mal form�
    Emplacement : http://lienDeLaPage?PKComp=2491024
    Num�ro de ligne 1, Colonne 2 :l//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    -^
    Devrais-je mettre ce topic r�solu et refaire un poste vu que ce n'est plus le m�me topic?

    Bonne journ�e!

  11. #11
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 526
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 526
    Par d�faut
    Utilisez Fiddler (http://www.fiddler2.com/fiddler2/) pour v�rifier le contenu transf�r�.
    J'ai l'impression que vous avez commencez � envoyer le d�but de la page aspx avant de faire "Response.Clear();"

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Merci bacelar,

    Je regarderais demain pour "Fiddler", �a n'a pas l'air facile � prendre en main.

    J'ai regard� du c�t� Response.Clear() et effectivement il ne supprime pas les headers en tampon.

    J'ai remarqu� que l'erreur ne survient pas au rafraichissement de la page mais plut�t quand je fait une action sur la page (changer de page, changer d'onglet) apr�s avoir ouvert un fichier donc sa voudrait dire que la page est mal construite apr�s l'ouverture d'un fichier.

    Je sais pas si j'ai �t� assez clair. Demandez moi si vous avez besoin de plus de d�tails.

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Bon j'ai pas trouv� de solution au bug sur FireFox pour l'instant mais je vous donne quand m�me le code que j'ai actuellement mis en place qui fonctionne sur IE et en partie sur FF.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
                try
                {
                    string filename = bouton.CommandName;
     
     
                    string path = bouton.CommandArgument;
     
                    System.IO.FileInfo file = new System.IO.FileInfo(path + "\\" + filename);
     
     
     
                    Response.Clear();
     
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + '"' + file.Name + '"');
     
                    Response.AddHeader("Content-Length", file.Length.ToString());
     
                    Response.ContentType = "application/octet-stream";
                    Response.WriteFile(file.FullName);
     
                }
                catch (Exception exception)
                {
                    erreurFichier.Text = "Le document est introuvable ou en cours d'utilisation.";
                    succesFichier.Text = "";
                    return;
                }
    Si vous voyez le bug, merci de me notifier.

    Bonne journ�e � tous!

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Par d�faut
    Bonjour � tous!

    J'ai trouv� la solution, j'ai pas approfondie du "pourquoi �a marche mieux que l'autre fa�on de faire" m�me que je devrais mais la voil� pour les prochains :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
          try
                {
                    string filename = bouton.CommandName;
     
                    string path = bouton.CommandArgument;
     
                    System.IO.FileInfo file = new System.IO.FileInfo(path + "\\" + filename);
                    Response.Clear();
     
                    Response.AppendHeader("Content-Disposition", "attachment; filename=" + '"' + file.Name + '"');
     
                    Response.ContentType = "application/octet-stream";
     
                    Response.TransmitFile(file.FullName);
     
                    Response.End();
     
                }
    catch(Exception exception){...}
    Bonne journ�e!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me Utilisation System.Diagnostics.Process.Start
    Par arngrimur dans le forum ASP.NET
    R�ponses: 14
    Dernier message: 02/11/2011, 16h51
  2. System.Diagnostics.Process.Start probleme d'Authentification
    Par ecureuilmasque dans le forum VB.NET
    R�ponses: 0
    Dernier message: 04/06/2010, 15h21
  3. Probl�me avec System.Diagnostics
    Par Rserge dans le forum Langage
    R�ponses: 2
    Dernier message: 02/03/2010, 17h56
  4. R�ponses: 0
    Dernier message: 12/01/2010, 10h51
  5. probl�me avec GET DIAGNOSTICS
    Par hpghost dans le forum PostgreSQL
    R�ponses: 1
    Dernier message: 07/07/2004, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo