2010-06-01 4 views
1

J'ai une application Web qui utilise l'appartenance et les profils. J'ai utilisé avec succès l'extension WebProfileBuilder, donc ma classe de profil est correctement générée, et fonctionne bien.Profil Asp.net dans un assemblage séparé

Cependant, après une nouvelle requête de mon client, je dois maintenant déplacer cette partie de gestion de profil dans un autre assemblage (pour pouvoir obtenir des informations de profil dans un service Windows fonctionnant sur la même machine).

Ce que j'ai fait est créé le nouvel assemblage, déplacé mon fichier de profil généré, et essayé de l'utiliser à partir de l'autre assembly, mais sans succès. J'ai toujours un SettingsPropertyNotFoundException. Ma pensée est que le système de profil ne sait pas où trouver ses informations de connexion, donc j'ai essayé d'ajouter la chaîne de connexion et le fournisseur dans le app.config de cet assembly, mais cela ne semble pas fonctionner.

Qu'est-ce qui me manque? Est-il possible de faire?

Merci d'avance!

Répondre

0

Ok j'ai trouvé ce qui ne va pas ... Merci à ce blog:

http://fredrik.nsquared2.com/viewpost.aspx?postid=244&showfeedback=true

La seule chose que je devais faire est d'ajouter applicationName="/" dans ma configuration de fournisseur, dans le app.config. (Qui est le nom de l'application, l'intérieur se trouve la table aspnet_Applications dans la DB.

<configuration> 

    <connectionStrings> 
    <add 
     name="MyConnectionString" 
     connectionString="Data Source=...;Initial Catalog=...;User ID=...;Password=..." 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

    <system.web> 
    <profile 
     enabled="true" 
     defaultProvider="Sql2008ProfileProvider"> 
     <properties> 
     <add name="UserLevel" type="integer"/> 
     <add name="value1" type="string" /> 
     <add name="value2" type="string" /> 
     <add name="value3" type="string" /> 
     <add name="value4" type="string"/> 
     </properties> 

     <providers> 
     <clear/> 
     <add 
      name="Sql2008ProfileProvider" 
      type="System.Web.Profile.SqlProfileProvider" 
      connectionStringName="MyConnectionString" 
      applicationName="/" 
      /> 
     </providers> 

    </profile> 
    </system.web> 

</configuration> 
0

J'ai un soupçon désagréable que votre fichier APP.Config ne sera pas choisi par l'application Web; avez-vous conservé les paramètres dans votre fichier Web.Config?

J'ai seulement trouvé app.config pour travailler sur un tel assem- blage lors de l'utilisation de NUnit ou similaire.

+0

j'ai enlevé ce qui était entre '' ... de mon web.config, et le problème est toujours là. – Shimrod

+0

Oh désolé, je veux dire que vous devriez essayer de garder les choses dans web.config et * pas * le déplacer vers le fichier app.config J'ai eu exactement le même problème en essayant de consommer des services WCF. les liaisons dans app.config, mais ont ensuite jeté l'exception quand j'ai essayé de charger la page.J'ai dû déplacer les paramètres dans Web.Config puis tout a commencé à travailler –

+0

C'était mon essai initial, et cela ne fonctionne pas non plus :-( Maintenant ... Étant donné que mon service Windows utilise le nouvel assembly, où dois-je placer le app.config? Dans l'assemblage ou dans le service des fenêtres? – Shimrod

Questions connexes