我正在开发ASP.NET MVC 4网站,并使用Microsoft ASP.NET Universal Providers。我打算部署到Windows Azure并使用SQL数据库。为了初始化本地SQL Server 2008数据库上的成员资格,配置文件和角色,我通过ASP.NET Web站点管理工具创建了一个新用户。我如何初始化会话?ASP.NET通用提供程序和会话状态
当我的应用程序运行时,自然我得到一个SqlException,说“无效的对象名称dbo.Sessions。”在Windows Azure上进行测试时,这不是问题; dbo.Sessions是自动创建的。从Azure上的dbo.Sessions生成一个创建表脚本并将其应用到本地SQL数据库后,我可以在本地运行。
的web.config:
<membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider">
<providers>
<clear />
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" passwordFormat="Hashed" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<profile enabled="false" defaultProvider="DefaultProfileProvider">
<providers>
<clear />
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<roleManager enabled="false" defaultProvider="DefaultRoleProvider">
<providers>
<clear />
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
<sessionState mode="Custom" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</sessionState>
有一件事让我几乎疯狂。我正在使用Studio 2012和IIS Express进行配置,并在配置中做了错误的处理。我稍后修复了它,但例外情况并未消失。一时兴起,我关闭了正在运行的IIS Express实例 - 然后运行。我假设它在某处存储了一个标志,并说表格应该已经存在。 – Rolf