我有一个使用会员资格和个人资料的网络应用程序。我成功使用了WebProfileBuilder扩展,因此我的配置文件类已正确生成,并且运行良好。
但是,在我的客户端发出新请求后,我现在需要将该配置文件管理部件移动到另一个程序集中(这样我就可以在同一台机器上运行的Windows服务中获取配置文件信息。)
我所做的是创建新程序集,移动我生成的配置文件,并尝试从其他程序集中使用它,但没有任何成功。我总是得到SettingsPropertyNotFoundException
。我的想法是配置文件系统不知道在哪里可以找到它的连接信息,所以我尝试在这个程序集的app.config中添加connectionstring和provider,但这似乎不起作用。
我错过了什么?有可能吗?
提前致谢!
答案 0 :(得分:0)
我有一种令人讨厌的怀疑,即你的APP.Config文件不会被网络应用程序选中;你在Web.Config文件中保存了设置吗?
在使用NUnit或类似设备时,我发现app.config只能处理这样的组合。
答案 1 :(得分:0)
好的我发现了什么问题...感谢这篇博文:
http://fredrik.nsquared2.com/viewpost.aspx?postid=244&showfeedback=true
我唯一需要做的就是在我的提供程序配置中,在app.config中添加applicationName="/"
。 (这是应用程序名称,可以在DB中的aspnet_Applications表中找到。
<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>