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

Dreamshield Discussion :

Configurer base de donnée avec Dreamshield


Sujet :

Dreamshield

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut Configurer base de donnée avec Dreamshield
    Bonjour,

    Je souhaite savoir si il est possible lors de l'installation de mon application, de demander à l'utilisateur final de séléctionner sa base de donnée sql server, et d'y entrer les Login / mdp correspondant, afin de placer tout cela dans le les "connections string" du fichier Web.config final de mon application web.

    PS : Comment est il possible également d'installer une DLL dans le GAC et lenregistrer ds l'assembly, mais ne pas l'enlever à la desinstallation? (car il sera utilisé par dautre projets installés ulterieurements).


    PS2: est il possible d'avoir en sortie un .MSI, avec une vrai icone et pas un setup.exe tout moche?

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Tgaud Voir le message
    Je souhaite savoir si il est possible lors de l'installation de mon application, de demander à l'utilisateur final de séléctionner sa base de donnée sql server, et d'y entrer les Login / mdp correspondant, afin de placer tout cela dans le les "connections string" du fichier Web.config final de mon application web.
    Je n'ai pas codé de moyen direct mais on peut créer une page personnalisé et y placer le code que l'on veux et exécuter l'enregistrement pendant l'installation. Pour ce faire :
    http://dreamshield.developpez.com/do...ain.Miles#toc4
    http://dreamshield.developpez.com/do...tLinstallation

    Citation Envoyé par Tgaud Voir le message
    PS : Comment est il possible également d'installer une DLL dans le GAC et lenregistrer ds l'assembly, mais ne pas l'enlever à la desinstallation? (car il sera utilisé par dautre projets installés ulterieurements).
    Sur la dll en question, tu fais un clique droit et tu coches "Actions sur les assemblies managées > Enregistrer dans le GAC".
    Ensuite, tu refais un clique droit sur la dll puis "Options d'installation" et dans la nouvelle boîte de dialogue dans "Mode de désinstallation de l'élément" tu spécifies "Never".

    Citation Envoyé par Tgaud Voir le message
    PS2: est il possible d'avoir en sortie un .MSI, avec une vrai icone et pas un setup.exe tout moche?
    DreamShield ne passe pas par des .MSI, mais tu peux changer l'icône du Setup et y mettre ce que tu veux. Pour ce faire, dans "Propriétés additionnelles" dans l'explorateur de projet (menu à gauche) tu va dans "Propriétés étendues du package > Images de l'assistant" et tu peux modifier la première image de l'assistant ainsi que l'icône du Setup.exe.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    Merci pour cette réponse rapide.
    Cependant pour l'ecran de selection de base de donnée, ça m'étonne que ce ne soit pas prévu, cest pourtant assez courant non?

    Il n'existe pas un plugin fait par qqun déjà tout fait?
    Car je doute avoir les compétence de programmation assez poussée pour développer un plugin moi même.

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Tgaud Voir le message
    Merci pour cette réponse rapide.
    Cependant pour l'ecran de selection de base de donnée, ça m'étonne que ce ne soit pas prévu, cest pourtant assez courant non?
    C'est justement souvent demandé mais il n'y a pas vraiment de solution simple (car normalement à la base un serveur de base de donnée ça ne se déploie pas, vu que c'est justement un serveur ...).
    L'écriture d'un plugin avec Miles est très simple, mais pour le SQL je ne m'y connais pas assez pour faire quelque chose de fiable. Par contre vu qu'on peut exécuter n'importe quel code pendant l'installation, si tu arrives à faire ce que tu veux par programmation (énumération des instances, installation dans l'instance que tu veux) alors tu peut le faire par DreamShield.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    Ouch on s'est mal compris.

    Tout ce que je veux c'est une un champ texte dans lequel il entre le chemin et le nom de l'instance de la base de donnée existante (sur un serveur distant)

    Le login de la base de donnée dans un autre champ texte

    et le mot de passe de la base de donnée dans un dernier champ texte
    (avec en bonus, un bouton "test de connexion")


    Et que derrière ça colle tout ça dans le "Connection String" du fichier web.config ! Ni plus, ni moins.

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ah

    Attend je te prépare un exemple avec Miles.

  7. #7
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Voilà. J'ai mis tout ce qu'il faut dans l'archive, y compris le dernier binaire de Miles. Tu as juste à modifier la référence vers DreamShield.Deployment.dll et rajouter le plugin à ton installation comme décrit ici dans le paragraphe "Téléchargement et Utilisation" (la section téléchargement tu n'en a pas besoin).

    Et ça donne ça :

    Le code en lui même crée juste un fichier web.config bidon dans le dossier d'installation avec les paramètres rentrés, mais tu peux modifier ça a ton bon vouloir cf. le code de PluginServer, fonction eventsPackage_BeforeRegisterPackage_Handler.

    Dit moi si ça te va ...
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    Voui merci c'est déjà un grand pas en avant !
    Après créé un fichier web.config ne me va pas trop car j'en ai dejà un parametré, il me faudrait juste dans l'idéal que ça cré (ou plutot rempli) la balise connection string du fichier xml web.config sous ce format :

    <connectionStrings>
    <add name="MyConnectionString" connectionString="Data Source=xxxxx;Initial Catalog=yyyyyy;Integrated Security=False; User=XXXXX; Pwd=ZZZZ"/>
    </connectionStrings>

    merci en tout cas.

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Et bien au lieu de faire dans le code que je t'ai envoyé le new FileStream(..., FileMode.Create), tu charges le fichier web.config avec XmlDocument et tu utilises XPath pour définir la valeur que tu veux

    Encore plus simple, tu peux avoir un web.config comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <connectionStrings>
    <add name="MyConnectionString" connectionString="Data Source={0};Initial Catalog={1};Integrated Security=False; User={2}; Pwd={3}"/>
    </connectionStrings>
    et donc charger le fichier en texte et utiliser String.Format pour remplacer ce que tu veux.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    j'ai pas trouvé ds le code ou est ce que les variables SQLServerInstance etc sont linké à l'interface?

    Sinon j'ai mis ce code

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void eventsPackage_BeforeRegisterPackage_Handler(object sender, EventArgs e)
            {
     
             System.Xml.XmlDocument webconf = new System.Xml.XmlDocument();
             webconf.Load("web.config"); 
             XmlNode node = webconf.SelectSingleNode("/configuration/system.web/connectionStrings/add");
             node.Value = String.Format(node.Value, SQLServerPath, SQLServerInstance, SQLServerUserName, SQLServerPassword);
             webconf.Save();
            }

    je sais pas si ça suffira à charger le bon fichier, et dans le cas contraire le chemin à indiquer pr le trouver.
    Et je sais pas si ça suffira à enregistrer ma nouvelle valeur comme il faut.

  11. #11
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    "web.config" ça suffit pas comme chemin, il faut que tu précises que le fichier se trouve dans le dossier d'installation (ie. TargetDir) ou dans un sous dossier si ce n'est pas ton cas donc :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string webconfigfile = Path.Combine(Server.Engine.Package.PackageTargetDir, "web.config");
     
                System.Xml.XmlDocument webconf = new System.Xml.XmlDocument();
                webconf.Load(webconfigfile);
                XmlNode node = webconf.SelectSingleNode("/configuration/system.web/connectionStrings/add");
                node.Value = String.Format(node.Value, SQLServerPath, SQLServerInstance, SQLServerUserName, SQLServerPassword);
                webconf.Save(webconfigfile);

    ie. Si ton web.config est dans le dossier "Dossier d'installation\machin\truc\web.config" il faudra faire rajouter avec les Path.Combine ou plus simplement
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    string webconfigfile = Path.Combine(Server.Engine.Package.PackageTargetDir, "machin\\truc\\web.config");

    Pour le lien entre les variables et l'interface, regarde le fichier AskForServer.cs

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    Voilà le bug que j'ai lors de l'execution de l'installeur
    avec le code en dessous.

    mon fichier web.config se trouve bien à la racine du projet pourtant.
    Images attachées Images attachées  

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Sur la ligne 84 il y a quoi ?
    Parce que moi je dirais que c'est plus un problème sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlNode node = webconf.SelectSingleNode("/configuration/system.web/connectionStrings/add");
    Car sinon il t'aurai dit FileNotFound.

    Donc, puis-je vois ton fichier de configuration au complet histoire de tester ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    <?xml version="1.0"?><configuration>
      <configSections>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
              <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
              <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
              <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
              <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
          </sectionGroup>
        </sectionGroup>
      </configSections>
      <appSettings>
        <add key="GaiaBouchon" value="Yes"/>
        <add key="ActiveBasicAdmin" value="Yes"/> <!-- Mettre à Yes pour activer le compte par default DSSI Login : admin pass : admin -->
      </appSettings>
      <connectionStrings>
        <add name="RISConnectionString" connectionString="Data Source={0};Initial Catalog={1};Integrated Security=False;user={2};pwd={3}"/>
      </connectionStrings>
      <system.web>
        <!-- 
                Définissez compilation debug="true" pour insérer des symboles 
                de débogage dans la page compilée. Comme ceci 
                affecte les performances, définissez cette valeur à true uniquement 
                lors du développement.
            -->
        <compilation debug="true" defaultLanguage="c#">
          <assemblies>
            <add assembly="Telerik.Web.UI, Version=2009.2.701.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4"/>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          
    				<add assembly="Telerik.Web.UI, Version=2009.2.701.35, Culture=neutral, PublicKeyToken=121FAE78165BA3D4"/>
    				<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    				<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>
        </compilation>
        <!--
                La section <authentication> permet la configuration 
                du mode d'authentification de sécurité utilisé par 
                ASP.NET pour identifier un utilisateur entrant. 
            -->
       <!-- <authentication mode="Windows" /> -->
        <authentication mode="Forms">
          <forms loginUrl="Front/Login.aspx" timeout="20">
          </forms>
        </authentication>
    
    
        <!--
                La section <customErrors> permet de configurer 
                les actions à exécuter si/quand une erreur non gérée se produit 
                lors de l'exécution d'une demande. Plus précisément, 
                elle permet aux développeurs de configurer les pages d'erreur html 
                pour qu'elles s'affichent à la place d'une trace de la pile d'erreur.
       -->
            <customErrors mode="RemoteOnly" defaultRedirect="~/Front/Erreur.aspx">
                <error statusCode="403" redirect="~/Front/AccesInterdit.aspx"/>
                <error statusCode="404" redirect="~/Front/PageNonTrouvee.aspx"/>
                <error statusCode="500" redirect="~/Front/Problem.aspx"/>
            </customErrors>
         
        <pages>
          <controls>
            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI, Version=2009.2.701.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4"/>
          </controls>
        </pages>
        <httpHandlers>
          <remove verb="*" path="*.asmx"/>
          <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
          <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/>
          <add path="ChartImage.axd" verb="*" type="Telerik.Web.UI.ChartHttpHandler, Telerik.Web.UI, Version=2009.2.701.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="false"/>
          <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false"/>
          <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false"/>
        </httpHandlers>
        <httpModules>
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
      </system.web>
      <system.codedom>
        <compilers>
          <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="WarnAsError" value="false"/>
          </compiler>
        </compilers>
      </system.codedom>
      <!-- 
            La section system.webServer est requise pour exécuter ASP.NET AJAX sur Internet
            Information Services 7.0.  Elle n'est pas nécessaire pour les versions précédentes d'IIS.
        -->
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
          <remove name="ScriptModule"/>
          <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </modules>
        <handlers>
          <remove name="WebServiceHandlerFactory-Integrated"/>
          <remove name="ScriptHandlerFactory"/>
          <remove name="ScriptHandlerFactoryAppServices"/>
          <remove name="ScriptResource"/>
          <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource"/>
          <add name="Telerik_Web_UI_DialogHandler_aspx" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler"/>
          <add name="Telerik_Web_UI_SpellCheckHandler_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler"/>
        </handlers>
      </system.webServer>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    
      <system.diagnostics>
        <trace autoflush="true" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="./Log/error.log"/>
            <remove name="Default"/>
          </listeners>
        </trace>
      </system.diagnostics>
    
    </configuration>

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Par rapport à ton xml, tu t'es trompé pour le chemin vers connectionStrings c'est pas dans system.web cf.
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    webconf.SelectSingleNode("/configuration/connectionStrings/add");
    car
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <appSettings>
        <add key="GaiaBouchon" value="Yes"/>
        <add key="ActiveBasicAdmin" value="Yes"/> <!-- Mettre à Yes pour activer le compte par default DSSI Login : admin pass : admin -->
      </appSettings>
      <connectionStrings>
        <add name="RISConnectionString" connectionString="Data Source={0};Initial Catalog={1};Integrated Security=False;user={2};pwd={3}"/>
      </connectionStrings>
      <system.web>
    ...

    D'autre part ce n'est pas la valeur de add que tu dois modifier mais la valeur de l'attribut "connectionString" de add ce qui donne donc :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    node.Attributes["connectionString"].Value = String.Format(node.Attributes["connectionString"].Value, "A", "B", "C", "D");

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    Cela fonctionne.
    Reste plus qu'à implémenter le bouton de test de connection à la base.
    et bloquer l'onglet "suivant" en fonction.

    Merci de ton aide en tout cas


    par contre j'ai beau spécifier un chemin d'installation par defaut dans "informations"

    lors de l'installation ca reste : Programfile/compagnie/nomduproduit

  17. #17
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Tgaud Voir le message
    Reste plus qu'à implémenter le bouton de test de connection à la base.
    Bah là c'est toi. Il suffit que tu modifies l'interface via le contrôle personnalisé présent dans AskForServer.cs.

    Citation Envoyé par Tgaud Voir le message
    et bloquer l'onglet "suivant" en fonction.
    Rajoute dans AskForServer ce code :

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CustomPagePlugin page = null;
     
            public void SetPage(CustomPagePlugin wizardPage)
            {
                page = wizardPage;
            }
    et dans PluginServer modifie la fonction OnServerInitialized pour que ça fasse
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                AskForServer customPageControl = new AskForServer(this);
     
                CustomPagePlugin customPage = new CustomPagePlugin(
                                    Server,
                                    WizardPagesID.InstallationModePage,
                                    false,
                                    "",
                                    customPageControl);
     
                customPageControl.SetPage(customPage);
    Ainsi, pendant l'affichage de la page tu pourra modifier l'état du bouton suivant. Par exemple, tu peux désactiver le bouton suivant par défaut ce qui donnerai ceci :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            public void SetPage(CustomPagePlugin wizardPage)
            {
                page = wizardPage;
     
                page.CanGoNext = false;
            }
    Et en réponse à un bouton "Test" que tu aura mis dans la page personnalisée, modifier l'affichage du bouton next via page.CanGoNext = true;

    Citation Envoyé par Tgaud Voir le message
    par contre j'ai beau spécifier un chemin d'installation par defaut dans "informations"
    DreamShield se souvient par défaut des précédents chemins d'installation du programme. Tu peux désactiver cette fonction via "Propriétés additionnelles > Propriétés étendues du package" et décocher "Se souvenir du dossier dans lequel les précédentes versions [...] ont été installées".

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 59
    Points : 22
    Points
    22
    Par défaut
    C'est parfait, j'ai converti en framework 3.5 pour utiliser linq,
    ainsi j'ai pu facilement creer mon bouton de test de connection à la base de données.

    Ca marche !

    au passage c'etait ma première experience winform, c'est pas mal.
    C'est très dynamique par rapport à une appli web.

    Maintenant nouveau challenge !

    Me rajouter une page de mise en place basique du site avec IIS, afin que juste avec le setup.exe, l'utilisateur puisse avoir un site fonctionnel dans son navigateur lorsqu'il tape localhost/nomApplication

    En gros, je place déjà mon projet de base dans le repertoire Inetpub/wwwroot/

    Mais il faut que j'indique à IIs qu'il s'agit d'une appli web et non d'un site web.
    Et également de creer le repertoire virtuel si ce n'est déjà fait automatiquement.

    Je veux juste faire une install basique sous IIS en laissant tomber les options avancées.


    Mais je n'ai aucune piste pour le moment.
    On ma parlé de composant "COM" pour faire cela???


    En tout cas merci à toi pour ton investissement personnel.

  19. #19
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Tgaud Voir le message
    Mais je n'ai aucune piste pour le moment.
    On ma parlé de composant "COM" pour faire cela???
    Alors là ... je n'ai jamais joué avec IIS (faut dire, IIS n'a pas vraiment d'intérêt quand on programme tout seul dans son coin). Mais ça marche toujours pareil : si tu peux le faire en programmation alors tu peux le faire dans DreamShield ...

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 12h49
  2. Modélisation base de données avec visio
    Par BIDA dans le forum Visio
    Réponses: 3
    Dernier message: 07/08/2007, 14h31
  3. Récupérer ma base de donnée avec des tables en .frm uniqueme
    Par Michas dans le forum Administration
    Réponses: 5
    Dernier message: 31/08/2005, 14h57
  4. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 19h50
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 11h12

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