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 :

ASP.net & Excel en IIS


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut ASP.net & Excel en IIS
    Bonjour,

    S'il vous plait J'ai Réaliser une application Web en ASP.net et Excel, cette application marche bien sur mon ordinateur qui possede VS2010 et MSOFFICE2010 mais quand je transmet mon application sur le serveur( Win Server 2003) elle marche bien sauf les étape relier à Excel quand je declare


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim app as new Excel.Application
    NB : que j'ai déja importer Microsoft.Office.interop
    et que j'ai ajouter la reference du Excel
    et que j'ai mon fichier Interop.Microsoft.Office.Interop.Excel.dll sur mon dossier /bin


    Erreur afficher :

    Erreur du serveur dans l'application '/'.
    --------------------------------------------------------------------------------

    La récupération de la fabrique de classes COM pour le composant avec le CLSID {00024500-0000-0000-C000-000000000046} a*
    échoué en raison de l'erreur suivante : 80070005
    Accès refusé. (Exception de HRESULT : 0x80070005 (E_ACCESSDENIED)).
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.UnauthorizedAccessException: La récupération de la fabrique de classes COM pour le composant avec le CLSID
    {00024500-0000-0000-C000-000000000046} a échoué en raison de l'erreur suivante : 80070005 Accès refusé.
    (Exception de HRESULT : 0x80070005 (E_ACCESSDENIED)).

    ASP.NET n'est pas autorisé à accéder à la ressource demandée. Accordez des droits d'accès à la ressource pour l'identité de la demande ASP.NET. ASP.NET a une identité de processus de base (en règle générale {MACHINE}\ASPNET sur IIS 5 ou Network Service sur IIS 6 et IIS 7, et l'identité du pool d'applications configuré sur IIS 7.5) qui est utilisée si l'application n'emprunte pas d'identité. Si l'application emprunte une identité via <identity impersonate="true"/>, l'identité sera l'utilisateur anonyme (en règle générale IUSR_MACHINENAME) ou l'utilisateur de la demande authentifié.

    Pour accorder un accès ASP.NET à un fichier, cliquez avec le bouton droit sur le fichier dans l'Explorateur, choisissez "Propriétés" et sélectionnez l'onglet Sécurité. Cliquez sur "Ajouter" pour ajouter l'utilisateur ou le groupe approprié. Sélectionnez le compte ASP.NET et activez les cases à cocher correspondant à l'accès souhaité.

    Erreur source:


    Ligne 167 : Dim da As Date = Date.Today
    Ligne 168 : Dim ds As New DataSet
    Ligne 169 : Dim app As xx.Application = New xx.Application
    Ligne 170 : Dim book As xx.Workbook
    Ligne 171 : Dim sheet As xx.Worksheet


    Fichier source : C:\inetpub\wwwroot\gestionsite\Administration.aspx.vb Ligne : 169
    Merci de m'aider

  2. #2
    Membre chevronné Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Par défaut
    Bonjour

    Tout est là :
    ASP.NET n'est pas autorisé à accéder à la ressource demandée. Accordez des droits d'accès à la ressource pour l'identité de la demande ASP.NET. ASP.NET a une identité de processus de base (en règle générale {MACHINE}\ASPNET sur IIS 5 ou Network Service sur IIS 6 et IIS 7, et l'identité du pool d'applications configuré sur IIS 7.5) qui est utilisée si l'application n'emprunte pas d'identité. Si l'application emprunte une identité via <identity impersonate="true"/>, l'identité sera l'utilisateur anonyme (en règle générale IUSR_MACHINENAME) ou l'utilisateur de la demande authentifié.
    Deux possibilités (peut-être d'autres) :
    - Rajoute une balise <impersonate /> dans ton web.config en y indiquant le login et le mot de passe de ton serveur afin de forcer l'exécution de ton appli web avec l'utilisateur en question.
    - Ouvre les propriétés de l'exécutable Excel et dans l'onglet Sécurité permet à l'utilisateur ASP.NET ou NETWORK de lui faire des misères.

    +++

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Bonjour,

    Merci de votre reponse mais j'ai tésté la 2ème proposition :

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office

    j'ai selectionné Excel click droit securité Acces autorisé a tous

    mé Rien n'ai changé

    pour la 1ère proposition je ne peux pas la tester car j'ai pas le login et le mot de passe du serveur et je ne peux pas les prendre à cause du securité dans la société (le responsable seul peux les connaitre)

    alors est ce qu'il ya une autre proposition.
    est ce qu'il faut recréer le le fichier .xls aprés modifier les autorisation ?

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Il y a aussi changer l'identité du compte qui fait tourner ton application. Il faut accéder au serveur IIS et aller dans les propriétés du pool.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Il est aussi important de noter que ce mode de fonctionnement n'est pas supporté par la licence Microsoft Excel et que cette approche est déconseillée fortement par Microsoft.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par chagdaniabdallah Voir le message
    Bonjour,

    S'il vous plait J'ai Réaliser une application Web en ASP.net et Excel,
    Faire interagir Excel sur une application serveur est une très mauvaise idée.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,

    Il y a aussi changer l'identité du compte qui fait tourner ton application. Il faut accéder au serveur IIS et aller dans les propriétés du pool.

    A+
    Qu'est ce je fait dans le pool d'application ?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Faire interagir Excel sur une application serveur est une très mauvaise idée.
    Alors svp comment je peux faire des rapports en excel si je fais pas cette methode ?

    je peux changer la methode; merci de m'aider

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par chagdaniabdallah Voir le message
    Alors svp comment je peux faire des rapports en excel si je fais pas cette methode ?
    En attaquant le classeur Excel comme une base de donnée et en écrivant des lignes et des colonnes dedans, avec le moteur "JET".

    Ou éventuellement en utilisant SSRS (Reporting Service).

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur ASP.Net - disponible pour des missions
    Inscrit en
    Septembre 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur ASP.Net - disponible pour des missions

    Informations forums :
    Inscription : Septembre 2008
    Messages : 151
    Par défaut
    Bonjour,

    tu peux aussi générer un fichier html avec une extension .xls, Excel saura l'ouvrir (sur Office 2010 il y a un warning mais ça passe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.AddHeader("content-disposition", "filename=toto.xls);
            HttpContext.Current.Response.ContentType = "application/ms-excel";
            HttpContext.Current.Response.Write("<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=UTF-8\">");
     
            HttpContext.Current.Response.Write(<table>);
            HttpContext.Current.Response.Write(<tr>);
            ...
            HttpContext.Current.Response.End();

  11. #11
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    tu as des librairies permettant de générer des fichiers excel et qui marche très bien sur un serveur

    tu as npoi si tu veux générer des fichier compatible avec les anciennes version d'office http://code.google.com/p/npoi/
    tu as aussi excel library http://code.google.com/p/excellibrary/

    sinon tu as epplus qui est compatible à partir de la version 2007 d'excel (2003 avec l'installation d'un module supplémentaire)
    http://epplus.codeplex.com/releases/view/42439

    il existe d'autre librairie permettant de créer des fichiers excel au format xml notamment à toi de voire celle qui te convient le plus

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Bonjour,

    Youtpout

    Je croi je ne peut pas travailler par la bibliothéque npoi car j'utilise OFFICE2010. Pour la library exelLibrary comment je peux utiliser Workbook et worksheet sans faire import microsoft.office.interop. et pour EPPLUS je ne sais pas comment travailler tu peux m'ecrire un code qui peux me servire.

    Merci

    Vhoward

    Je prend a ta connaissance que j'ai déja mon fichier excel créer et que dans mon code je le remplit et dans ce fichier .xls il y a déja des cells qui sont pleine alors que d'autre sont dynamique et qu'eux que je veut saisir à partir de mon code en conservant les entête ...

    Par exemple

    | |Employé1|Employé2|employé3......
    |Projet1 | | | ....
    |Projet2 | | | ....


    et mois je veux remplir les champs vide et dans chaque mois j'utilise un fichier qui est dans cette format alors je copier le modele et je remplir les champs a partir de mon code


    Bluedeep

    comment je peux utiliser un fichier excel comme une base de donnée sachant que le fichier n'est pas exactement un tableau comme dans access ...

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    Bonjour,

    Merci de passer du temps à m'aider
    bon !! le problème est résolu j'ai ajouter dans le web configue la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <identity impresionate="true" UserName = "xxx\yyy" password="xxxxx">

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2008, 12h02
  2. ASP.NET Et EXCEL
    Par gbrualla dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/12/2007, 15h46
  3. [ASP.NET C#] Excel
    Par lenoil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/07/2007, 09h49
  4. [Webforms] Onglet ASP.NET manquant dans admin IIS
    Par quanou dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 19/09/2005, 13h14
  5. enregistrer asp.net 1.1 avec IIS
    Par argv666 dans le forum ASP
    Réponses: 2
    Dernier message: 11/04/2005, 16h31

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