我在一个asp.net项目中遇到了一个怪胎问题。实际上这不是我自己的代码,我正在研究别人的代码。此项目与成员资格提供程序绑定。问题是,每次运行此项目时,它都会在aspnet_Profile
和aspnet_Users
成员资格表中插入新行,如果我再次运行同一页面,则会更新这两个表列{{1}表格和LastUpdatedDate in aspnet_Profile
表格,包含当前日期和时间。
因为我在这两个表中有超过LastActivityDate in aspnet_Users
个条目。我想知道它为什么会发生。我测试了代码但没有找到任何解决方案,但我仍然认为它是因为1lac
文件导致的,因为在该文件中我们提到了成员资格提供者。
以下是我的会员提供者的配置方式:
web.cofig
以下是我的配置文件提供程序的配置方式:
<membership defaultProvider="CustomizedProvider">
<providers>
<clear/>
<add name="CustomizedProvider"
applicationName="B-School"
type="System.Web.Security.SqlMembershipProvider"
minRequiredPasswordLength="5"
connectionStringName="SchoolConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
passwordFormat="Hashed"
minRequiredNonalphanumericCharacters="1"
/>
</providers>
</membership>
请告诉我朋友如何解决这类问题。
我想知道为什么它会在每次通话时点击<profile >
<providers>
<clear/>
<add name="AspNetSqlProfileProvider"
connectionStringName="SchoolConnectionString"
applicationName="LCI"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>
</providers>
<properties>
<add name="Id" type="System.Int64" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue="0"/>
<add name="Language_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Qualification_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Country_Id" type="System.Int64" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue="0"/>
<add name="City_Id" type="System.Int64" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue="0"/>
<add name="Price_Id" type="System.Int64" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue="0"/>
<add name="Gender_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="StudentAge_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Religion_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Facility_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Search_String" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Compare_School_Ids" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
<add name="Compare_Array" type="System.Collections.ArrayList" provider="AspNetSqlProfileProvider" allowAnonymous="true"/>
<add name="Title_String" type="System.String" provider="AspNetSqlProfileProvider" allowAnonymous="true" defaultValue=""/>
</properties>
</profile>
和aspnet_Profile
表。
答案 0 :(得分:1)
<profile>
中的web.config
元素具有[可选]属性automaticSaveEnabled
。它
指定在执行结束时是否自动保存用户配置文件 一个ASP.NET页面。如果 true ,则在执行ASP.NET页面时会自动保存用户配置文件。
其默认值为 true
。
你可以猜到当时会发生什么。
将您的<profile>
元素修改为类似
<profile automaticSaveEnabled="false" ... >
你应该没问题。
注意:但是,当您想要将内容实际存储到后备存储时,您必须显式调用ProfileBase.Save()
。