使用SQLAzure将会话数据用于生产而不是调试

时间:2013-11-27 16:42:42

标签: asp.net azure azure-sql-database

我感觉这是一个非常奇怪的问题。我有一个ASP.NET MVC5项目,由SQL Azure支持其会话。当它加载到Azure上的Cloud Service时,这非常有效。但是,在调试时,它几乎总是在初始页面加载(包括CSS文件之类的后续调用)之后的所有加载上抛出以下异常,直到启动新的调试会话,然后第一页再次工作,但所有后续页面都会中断。

消息:

The connection is not of type 'System.Data.SqlClient.SqlConnection'.

堆栈追踪:

at System.Data.SqlClient.SqlProviderUtilities.GetRequiredSqlConnection(DbConnection connection) 
at System.Data.SqlClient.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) 
at System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)

目标网站:

System.Data.SqlClient.SqlConnection GetRequiredSqlConnection(System.Data.Common.DbConnection)

我知道这不是连接被SQL Azure阻止,因为站点的其余部分使用相同的数据库和连接字符串,并且正常工作以加载所需的其他数据(加上它在第一次调用时工作)。 / p>

禁用SQL Azure进行会话会使这一切消失。但我需要将此站点置于负载均衡器后面,以便InProc会话状态不再有效。

这是来自web.config的sessionState

<sessionState mode="Custom" customProvider="DefaultSessionProvider">
    <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
    </providers>
</sessionState>

更新

有人问我是否使用转换,而我是为配置文件做的。当切换到发布和点击运行时它确实工作正常(不是在Chrome中,但我认为这是另一个问题)。但它仍然困扰我,因为Debug配置文件中没有任何内容,Release配置中唯一的主要变化是这一行:

<compilation xdt:Transform="RemoveAttributes(debug)" />

0 个答案:

没有答案