none
Executer mon DLL C# sur une page ASP RRS feed

  • Discussion générale

  • Bonjour,

    j´ai un souci avec mon fichier ASP écrit avec le langage Javascript. je n ai aucune base en langage ASP.

    j´ai crée un graphique Chart control avec C# et j´aimerais que ce graphique apparaisse dans une page ASP lorsque celle ci est exécutée. pour ce faire j´ai creer un Assembly (DLL) que j´ai pu enregistrer sur le Server á l´aide de Regasm.exe et de gacutil.exe que m´offre Microsoft Framework. Cependant mon DLL a été enregistré a l endroit suivant C:\Windows\Microsoft.NET\assembly\GAC_MSIL\TestDot \v4.0_1.0.0.0__7d9ae505f47c15ea\TestDot.dll  Au lieu de C: \ Windows \ Assembly \. je ne sais pas si sa cause probleme

    Puisque mon DLL se trouve deja enregistrer dans le server, quel code doit je ecrire dans mon fichier div.asp afin que mon dll soit éxecuté lorsque l´on execute la page asp.

    Merci d´avance pour vos Reactions


    mardi 3 février 2015 09:52

Toutes les réponses

  • Bonjour,

    Je vous conseille (pour des raisons de déploiement) de ne pas mettre dans le GAC mais d'inclure votre DLL à votre solution d'application Web. Ainsi cette DLL sera déployé automatiquement lors de la mise à jours de votre site web et cela vous simplifira les choses.

    Ensuite, s'il s'agit d'un control ASP.NET,  il devrait être present dans la boite à outils de VS et vous n'uarez qu'un glissé/déplacer à effectuer pour l'ajouter à votre page..

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.


    mardi 3 février 2015 10:52
  • Bonjour Kevin,

    Stp comment inclure mon DLL dans la solution d´application Web. pour qu´elle soit déployé automatiquement?

    voila un extrait du code du document div.asp que j ´ai resu. a quel niveau dois- je écrire quel code pour que ma DLL soit executé. Actuellement ma DLL se trouve a 2 endroits. dans mon Projekt ( C:\Users\GManess\Desktop\TestDot\TestDot\bin\Debug\TestDot.dll ) et dans le Server ( C:\Windows\Microsoft.NET\assembly\GAC_MSIL\TestDot \v4.0_1.0.0.0__7d9ae505f47c15ea\TestDot.dll  ).

    <%@  language="JScript" %>
    
    <script language="javascript" runat="server"></script>
    <%
        var cn = Server.CreateObject("ADODB.Connection");
        var ProvStr = "Provider=SQLNCLI10; Data Source=sql3; Initial Catalog=BarForce; Integrated Security=SSPI;"
        cn.Open(ProvStr);
    
        var sql = cn
    
        var today = new Date();
        var today_getDay = today.getDay();
    
        var yesterday = new Date(today);
        var yesterday_getDay = 1;
    
        if (today_getDay==1){
            yesterday_getDay =3;
        }        my_month = my_month + 1;
                function change_Date_Format_Field(myField_Date)
        {
            if (myField_Date == null || myField_Date == "")
                return "";
    
            strQuery = "RIGHT(REPLICATE('0', 2) + CAST(DATEPART(DAY,"+ myField_Date +") AS varchar(2)), 2) + '.' +"
                        + "RIGHT(REPLICATE('0', 2) + CAST(DATEPART(MONTH, "+ myField_Date +") AS varchar(2)), 2) + '.' + "
                        + "CAST(YEAR("+ myField_Date +") AS VARCHAR(4)) +'  '+ "
                        + "Convert(varchar(5), "+ myField_Date +", 108) "
    
            return strQuery;
        }  
        var myColorGreen = "#73bf26";
        var myColorRed =  "#d13426";
    
    %>
    
    <html>
    <head>
    <title>chayns® Live App-Infos</title>
    
    <style>
    
    p {
    
    margin: 0px;
    font-family: Arial;
    font-size: 14px;
    
    }
    
    .small_text {
    
    font-size: 13px;
    color: #8c8c8c;
    
    }
    
    </style>
    
    </head>
    
    <body style=" margin: 0px; background-color: #edf0f2;">
    
    <div style="width: 100%; background-color: #5798d9; height: 40%;">
    <div style="; width: 1220px; height: 540px; top: 50%; left: 50%; margin-top: -300px; margin-left: -610px; border: #cccccc 0px solid;">
    
    	<div style="; width: 286px; height: 26px; left: 50%; margin-top: 20px; margin-left: -143px; background-image: url('allinfos_title.png');"></div>
    
    	<div style="float: left; width: 280px; height: 415px; margin-top: 15px; margin-left: 35px; background-image: url('karte.png');">
    		<div style="; width: 50px; height: 50px; left: 50%; margin-left: -25px; margin-top: 20px; background-image: url('icon_apple.png');"></div>
    		<p style="margin-top: 9px; color: #8c8c8c;" align="center"><b>Letzte App hochgeladen</b></p>
    		<p style="margin-top: 6px; color: #73bf26;" align="center"><b>
    		<%
    		var sub_query = change_Date_Format_Field("iOS_EndTime");
    		strQuery_Datum_Formiert = "SELECT TOP 1" + sub_query + "FROM ChaynsProductionStatus (NOLOCK) WHERE iOS_EndTime IS NOT NULL ORDER BY iOS_EndTime DESC";
    		var rs = sql.execute(strQuery_Datum_Formiert)
    		if (!rs.EOF) {
    		var myValue_Datum_Formatiert = rs(0) + "";
    		rs.movenext();
    		}
    		var mySeconds = get_TimeLeft_to_now (myValue_Datum_Formatiert);
    		var str_full_mySeconds = secondsToString(mySeconds);
    		if (str_full_mySeconds[1] == "green") { Response.Write("<span>"); }
    		if (str_full_mySeconds[1] == "red")   { Response.Write("<span style='color: #d13426;'>");}
    		Response.Write(str_full_mySeconds[0]);
    		Response.Write("");
    		%>
    		</b></p>
    		<p style="margin-top: 9px; color: #8c8c8c;" align="center"><b>Telechargement journalier</b></p>
    		<p style="margin-top: 6px; color: #73bf26; font-size: 17px;" align="center"><b>
    		    strQuery_today = "select  COUNT(ITC_Status1) from SlitteApp where ITC_Status1 = 'Waiting For Review'  AND CONVERT(date,ITC_LastModified1) >= Convert(date, GETDATE())";
    		rs = sql.execute(strQuery_today)
    		if (!rs.EOF) {
    		var myValue_Today= rs(0) + "";
    		rs.movenext();
    		}
    		strQuery_yesterday = "select  COUNT(ITC_Status1) from SlitteApp where ITC_Status1 = 'Waiting For Review'  AND CONVERT(date,ITC_LastModified1) >= Convert(date, GETDATE()-1) AND CONVERT(date,ITC_LastModified1) < Convert(date, GETDATE())";
    		if( today_getDay == 1){ strQuery_yesterday = "select  COUNT(ITC_Status1) from SlitteApp where ITC_Status1 = 'Waiting For Review'  AND CONVERT(date,ITC_LastModified1) >= Convert(date, GETDATE()-3) AND CONVERT(date,ITC_LastModified1) < Convert(date, GETDATE())";}
    		rs = sql.execute(strQuery_yesterday)
    		if (!rs.EOF) {
    		var myValue_yesterday= rs(0) + "";
    		rs.movenext();
    		}
    		Response.Write("");
    		Response.Write(myValue_yesterday +" / " + myValue_Today);
    		Response.Write("");
    		%>
    
    </div>
    
    </body>
    
    </html>

    C est pas moi qui ait écrit ce code asp. je l ai juste recu de quelqu´un qui n ait plus lä dans l´entreprise. et je dois faire en sorte que mon graphique créer a C# apparait lors de la mise a jour de ce site.

    Merci d´avance pour vos suggestions

    mardi 3 février 2015 12:33
  • Bonjour,

    Pour ajouter la DLL dans votre solution, il suffit Simplement de l'ajouter comme reference à votre projet Web :

    https://msdn.microsoft.com/fr-FR/library/ez524kew.aspx

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 3 février 2015 13:18
  • Salut,

    je veux ajouter ma DLL du projekt C# dans le fichier div.asp. je ne comprend toujours pas comment le faire. voila mon fichier asp que j ai ouvert par defaut avec Visual Studio.(voir foto).

    soyez un peu plus explicite pardon.

    merci

    mardi 3 février 2015 13:55
  • Bonjour,

    Votre problème est que vous ouvrez un fichier uniquement.

    Il serait preferable pour vous d'ouvrir la solution Web correspondant à votre application Web.

    Cordialement,


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mardi 3 février 2015 14:02
  • Salut,

    malheureusement je n ai resu que ce fichier. et le Projet en elle meme je n´ai pas. sur le lien suivant je crois avoir la solution a mon Problem  http://www.tizag.com/aspTutorial/aspDLL.php

    seulement lorsque j´exécute la premiere étape qui est enregistré la DLL dans le system j´obtiens l´erreur suivante

    The module "C:\Users\Gmaness\De.....\Chart.dll" was loaded but the entry-point DllRegisterService was not found.
    
    Make sure that
    "C:\Users\Gmaness\De.....\Chart.dll" is a valid DLL or OCX file and then try again

    j´ai cherché a google comment remedier a cette erreur plusieurs solutions m ont été proposé mais l erreur s´affiche toujours. que dois je faire concretement pour ne plus avoir  cette erreur?

    Merci

    puisqu´il s´agit d´un graphique Chart j´aimerais que celui que j ´ai crée a C# s affiche dans la page comme le montre le lien suivant

    https://google-developers.appspot.com/chart/interactive/docs/gallery

    merci encore pour vos reponses

    cordialement

    mardi 3 février 2015 16:11
  • Bonjour,

    Vous avez un site web ASP "classique" donc il ne sait "consommer des dll .NET que si elles sont exposés comme objets COM.

    Il est donc impératif de l'enregistrer comme objet COM comme vous l'avez fait. Maintenant son emplacement est accessoire (GAC ou pas, mieux vaut effectivement éviter de polluer le GAC).

    Pour savoir ou est enregistré votre dll, regardez donc dans la base de registre (cherchez le nom de votre dll). Dans cet enregistrement, vous devez avoir le nom des objets COM exposés et oui, l'instanciation se fait bien comme vous faites avec Server.CreateObject.

    Donc votre problème est de savoir le nom de votre objet COM.

    Regedit.exe est votre nouvel ami ;-)

    NB : 

    C:\Windows\Microsoft.NET\assembly\GAC_MSIL\TestDot \v4.0_1.0.0.0__7d9ae505f47c15ea\TestDot.dll  

    et

    C: \ Windows \ Assembly\TestDot

    sont en réalité la même chose. A l'installation du .NET Framework, un  add-in de l'explorateur de fichier est installé qui à pour but de faire une représentation plus "user friendly" du dossier assembly.

    D'ailleurs, amusez vous à aller dedans en mode console et vous retrouverez cette hiérarchie de dossiers.

    (je n'expliquerais pas ici le comment du pourquoi mais c'est que tout simplement que .NET permet l'existence en parallèle de plusieurs versions d'une dll et que NTFS (comme FAT & co) ne supportent que 2 fichiers portent le même nom dans un même dossier.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 4 février 2015 06:54
  • NON, c'est un projet ASP ici

    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 4 février 2015 06:55
  • Bonjour,

     Ma DLL est bien enregistrée comme Objekt COM. et le nom de l´objekt COM est bien TestDot.

    lorsque je fais l'instanciation dans ASP avec le code suivant

     <%var myDLL  = Server.CreateObject("TestDot.myClass")   
                %>

    j´obtiens l´erreur suivante 

    Error:
    Server object, ASP 0177 (0x800401F)
    
    800401f3
    /internal/TestAngel/anonymous/div_Gisele.asp, line 942
    
    
    UserAgent:
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)

    merci pour vos reponses

    cordialement

    mercredi 4 février 2015 09:58
  • Salut,

    Svp comment resoudre cette erreur

    Error:
    Server object, ASP 0177 (0x800401F)

    Que dois je ecrire dans Server.CreateObject()

    merci

    mercredi 4 février 2015 15:26
  • Bonjour,

    voir ces liens, ça peut t'aider :

    http://blog.dantup.com/2010/03/intermittent-server-createobject-failed-asp-0177-8000ffff-error-creating-net-com-components/

    http://stackoverflow.com/questions/12945392/server-object-error-asp-0177-800401f3-server-createobject-failed

    http://support.microsoft.com/KB/175804

    http://support.microsoft.com/kb/258932/fr

    mercredi 4 février 2015 15:52
  • Bonjour,

    merci déjá pour les liens.j´ai visité ces liens et essayer les solutions proposer mais mes Erreurs persiste toujours. peu etre je n éxecute pas bien les points énoncés, sa je ne sais pas. je ne sais plus quoi faire.

    pardon es ce que quelqu´un peu m énoncé ce que je dois faire sur mon Ordinateur point par point  pour remedier au moins a une des 2 erreurs afin que ma ligne suivante soit exécutée dans asp?

     <%var myDLL  = Server.CreateObject("TestDot.myClass")   
                %>
    //premiere Erreur quand j´execute regsvr32 C:\..\TestDot.dll
    
    The module "C:\Users\Gmaness\De.....\Chart.dll" was loaded but the entry-point DllRegisterService was not found.
    Make sure that
    "C:\Users\Gmaness\De.....\Chart.dll" is a valid DLL or OCX file and then try again
    
    //2ieme Erreur
    Error:
    Server object, ASP 0177 (0x800401F)

    j´utilise Windows 8.1, System 64 Bit Operating System, x64-based Processor

    Merci Infiniment!

    cordialement


    • Modifié maness jeudi 5 février 2015 14:17
    jeudi 5 février 2015 14:13
  • Bonjour,

    j´ai crée un simple programme "classe Bibliotheque" ayant une seule Class "Class1" que j´ai pu enregistrer dans le cache C:\Windows\assembly\TestDll

    j´ai crée un nouveau dossier Test.asp dans lequel je fais appel a ma DLL

    mais je n´arrive pas toujours a faire appel a cette DLL dans ASP. avec le code suivant

    var DLL = Server.CreateObject("TestDll.Class1");


    j´obtiens a nouveau l´erreur suivante

    Error:
    Server object, ASP 0177 (0x800401F)
    

    la meme syntaxe a été utilisé pour une autre assembly existant dans le meme cache dans un autre dossier "asp" de la maniere suivante mais cela n´affiche pas d´erreur quand je l´éxecute dans mon fichier "Test.asp"

    var cn = Server.CreateObject("ADODB.Connection");

    voila le contenu de mon fichier Test.asp

    <%@  language="JScript" %>
    
    <script language="javascript" runat="server"></script>
    
         <%        
    //var cn = Server.CreateObject("ADODB.Connection");
    
    var DLL = Server.CreateObject("TestDotNetPhp.Class1");
    %>
    
    
    <html>
    
    <head>
    
    <title>chayns® Live App-Infos</title>
    
    <style>
    
    p {
    
    margin: 0px;
    font-family: Arial;
    font-size: 14px;
    
    }
    
    .small_text {
    
    font-size: 13px;
    color: #8c8c8c;
    
    }
    
    </style>
    
    </head>
    
    <body style=" margin: 0px; background-color: #edf0f2;">
    
    </body>
    
    </html>

    Merci pour vos contributions

    jeudi 12 février 2015 14:37