我感觉这是一个非常奇怪的问题。我有一个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)" />