我编写了一个.NET应用程序,我想在Azure上托管,使用(至少)两个虚拟机,一个负载均衡器和一个SQL服务器数据库。
根据this页面,我必须在表存储,SQL Server和Redis缓存之间进行选择。
我希望使用SQL Server进行会话存储,因为我已经有了一个SQL服务器实例。但是,当我使用aspnet_regsql.exe的步骤时,我得到超时。我还导出了使用aspnet_regsql.exe生成的脚本,然后通过SSMS运行它,但它返回了大量的错误。 (链接到第一条评论中发布的脚本和错误)
我应该如何在Azure中使用带有SQL Server的sessionState?
非常感谢!
答案 0 :(得分:0)
我找到了相关的blog,请尝试按照以下步骤操作:
1.使用ASP.NET SQL Server注册工具
设置会话状态数据库
%Windows%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe -S MyCluster\Prod -U sa -P topsecret -ssadd -ssype p
2.在web.config中配置连接字符串 我强烈推荐在连接字符串中包含应用程序名称并保持连接时间不足。
<connectionStrings>
<add name="SessionConnectionString"
connectionString="Data Source=MyCluster\Prod,1234;user=sa;pwd=topsecret;Connect Timeout=10;Application Name=xxxx;Current Language=English" />
</connectionStrings>
3.在web.config中设置机器密钥 如果您在多个服务器或云中运行该站点,则必须这样做。
<system.web>
<machineKey xdt:Transform="Insert"
validationKey="..."
decryptionKey="..."
validation="SHA1" decryption="AES" />
</system.web>
4.在web.config中配置会话状态
<system.web>
<sessionState mode="SQLServer"
sqlConnectionString="SessionConnectionString"
compressionEnabled="true"
cookieless="false"
timeout="20"/>
</system.web>