[ASP.NET] SiteMapProvider

Bonjour,

J’ai fini par faire un SiteMapProvider que j’ai nommé MySiteMapProvider (original non ).

J’ai placé le fichier MySiteMapProvider.cs qui contient la classe MySiteMapProvider dans le dossier ‘Code’ de mon application web.

Malheureusement je n’arrive pas à le déclarer dans le fichier Web.config : j’ai mis

<system.web>


<add
 name=“tstPro”
  type="MySiteMapProvider"
connectionstring =“connection”
/>
 
 
</system.web>

et il me met l’erreur suivante

The SiteMapProvider ‘MySiteMapProvider’ cannot be found.
J’ai certainement mal déclaré mais je ne sais comment

Merci !

Je ne suis pas certain de ce que je vais dire dans la mesure ou je n’ai jamais touché au sitemap, mais a mon avis l’attribut type dans la declaration doit aussi contenir le namespace complet de ta classe du genre blabla.MySiteMapProvider

edit: d’ailleurs ca m’étonnerais que de mettre le fichier dans le repertoire Code soit une bonne idée.
Ce message a été édité par bwets le 10/10/2004

OK, donc comme j’ai pas mis de namespace, je rajoute system.global ?

edit: d’ailleurs ca m’étonnerais que de mettre le fichier dans le repertoire Code soit une bonne idée.
Ah bon ? pourquoi ? c’est VS qui m’a crée un dossier Code pour stocker mon fichier .cs
Ce message a été édité par EzecKiel le 10/10/2004

hop, j’arrete de parler dans le vague, voila plus d’info

http://odetocode.com/Blogs/scott/archive/2004/07/07/303.aspx
http://www.windowsitlibrary.com/Content/929/05/2.html
http://www.dotnetforce.com/Content.aspx?t=a&n=242

Bon j’essaierai tout çà ce soir, Merci. Mais çà ne me dit pas pourquoi il ne faut pas que je mette mon fichier .cs dans le dossier Code.
Merci pour les infos en tout cas !

Bon il y a du progrès, maintenant le message d’erreur est :

“Provider could not be instantiated.”

Parce que le web.config est parsé avant que le répertoire Code soit compilé (justement parce que la compilation est configurée par ce même web.config).
Le développement d’un provider est un des rares cas où il faut faire une librairie précompilée et pas juste du code dans Code. La dernière fois que j’ai fait ça, en tout cas, c’est ce que j’avais dû faire.
Ce message a été édité par boudin le 11/10/2004

Re !

J’ai fait ce que tu as dis mais çà ne veut rien savoir…
Si l’envie vous prend d’essayer, c’est ici.
Il y a tout, db comprise…

Thx

Ah bah ouais, mais faut le virer du répertoire code, si tu le mets sous forme de dll dans le bin.
J’ai pas encore essayé de le faire tourner, ceci dit.

Ouai, j’ai viré le répertoire ‘Code’ mais çà me met toujours la même erreur :
Exception Details: System.Web.HttpException: The SiteMapProvider ‘MySiteMapProvider’ cannot be found.

Triple buse!
Le problème ne vient pas de ton web.config, mais de ta master page, où tu demandes “MySiteMapProvider” comme provider, alors que le nom que tu lui as donné dans la config est “tstPro”. En plus, comme c’est ton provider par défaut, tu n’as pas besoin de le préciser sur le menu.

Effectivement je suis trop laid :stuck_out_tongue:
Mais même en remplaçant (ou en supprimant) SiteMapProvider=« MySiteProvider » par SiteMapProvider=« tstPro » j’ai toujours ce #$!$£ de message d’erreur :

[quote]The SiteMapProvider ‹ tstPro › cannot be found.
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.Web.HttpException: The SiteMapProvider ‹ tstPro › cannot be found.[/quote] :stuck_out_tongue:

OK, alors dans la master, moi j’ai mis ça:
<asp:Menu ID=“mainMenu” Runat=“server” DataSourceID=“SiteMapDataSource1”></asp:Menu>
<asp:SiteMapDataSource ID=“SiteMapDataSource1” Runat=“server” />

Et ça marche nickel.

t’as pas touché au webconfig ?
parce que moi j’ai fait un copy paste de ce que t’as mis (histoire d’être sur de ne pas faire de bourde en recopiant :stuck_out_tongue: ), quand je fais CTRL+F5 j’ai :

[code]Default provider is not defined in your configuration files. You must specify the defaultProvider within section to enable sitemap feature.
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.Web.HttpException: Default provider is not defined in your configuration files. You must specify the defaultProvider within section to enable sitemap feature.[/code]

tu me diras il y a du progrès ce n’est plus le même message d’erreur :stuck_out_tongue:

Je vais y arriver… je veux y arriver. Je dois être près du but là !

<?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <appSettings/> <system.web> &nbsp;<siteMap defaultProvider="tstPro" enabled="true"> &nbsp;<providers> &nbsp; &nbsp;<add name="tstPro" &nbsp; &nbsp; &nbsp;type="Cepir.MySiteMapProvider,MySiteMapProvider" &nbsp; &nbsp; &nbsp;/> &nbsp;</providers> &nbsp;</siteMap> </system.web> </configuration>

Et me revoilà !!! :stuck_out_tongue:

Bon j’ai toujours un petit souci :

[quote]Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
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.InvalidOperationException: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. [/quote]

Tout ce que je sais c’est que çà vient de la connexion à la base de données et…
et puis c’est tout :stuck_out_tongue:

Pourtant j’ai essayé de faire une requête et çà marche…

ci-joint le code + db : http://ezeckiel1.free.fr/ex2.zip

j’y suis presque, j’y suis presque :stuck_out_tongue:

Bon apparemment, il boucle sur la fonction LoadSiteMapFromStore () qui ouvre un pool de connexion… :stuck_out_tongue:

Reste à savoir pourquoi :stuck_out_tongue: