Asp.net简介在一个单独的程序集中

时间:2010-06-01 10:20:51

标签: asp.net membership profile

我有一个使用会员资格和个人资料的网络应用程序。我成功使用了WebProfileBuilder扩展,因此我的配置文件类已正确生成,并且运行良好。

但是,在我的客户端发出新请求后,我现在需要将该配置文件管理部件移动到另一个程序集中(这样我就可以在同一台机器上运行的Windows服务中获取配置文件信息。)

我所做的是创建新程序集,移动我生成的配置文件,并尝试从其他程序集中使用它,但没有任何成功。我总是得到SettingsPropertyNotFoundException。我的想法是配置文件系统不知道在哪里可以找到它的连接信息,所以我尝试在这个程序集的app.config中添加connectionstring和provider,但这似乎不起作用。

我错过了什么?有可能吗?

提前致谢!

2 个答案:

答案 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>