问题标签 [sql-session-state]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net-core - 使用 .net core 在多个应用程序之间共享会话
我们正在使用 SQL 会话状态在遗留应用程序中保存数据并在未来的应用程序应用程序中访问。
如果有人知道如何使用 .net 核心在多个站点之间共享 SQL 会话状态,请分享信息。
第 1 步:我们有遗留应用程序,我们需要在其中登录并重定向到未来迁移的应用程序。
第 2 步:当重定向发生在未来的应用程序会话中时,需要持久化并在未来的应用程序中可访问
如果有人在 .NET Core 下处理上述场景,请分享信息。
c# - 如何在 UI 和 Web Api 之间共享会话?
我有两个应用程序。一个是用户界面,它在会话中存储诸如 UserID 之类的信息。另一个是与 UI 通信的 web api。我需要与 web api 共享这个 UI 会话。
1-我知道不建议将会话与 Web Api 一起使用,但出于我的目的,我需要这样做。
2- 由于网络农场,我正在使用 sessionState 模式 =“SQLServer”。
两个应用程序具有相同的配置,但由于某种我不知道的原因,它做得不对。
3 - 我仍在本地开发它。
有人能帮我吗?
reporting-services - SSRS 报告查看器 - ASP.Net 会话已过期或在 NLB(SQL Server)上找不到
你好,
我对NLB production environment
配置两个应用程序服务器的位置有疑问。两者都有一个使用页面在 iframeReportViewer
中呈现的虚拟目录。SSRS reports
.aspx
在“ASP.NET 会话已过期或找不到”错误后,我更改了sessionState mode=SQLServer
自定义数据库,但错误仍然存在。我也可以在数据库表中看到会话条目。
还能缺少什么?
- 我在某处读过,拥有一个_ (underscore)
in 域名可能会导致这种情况。我检查了 URL,querystring
参数中有一个下划线,但没有域名本身,并且查询字符串是由ReporViewer ScriptResource.axd
它自己自动生成的。
-KeepSessionAlive
也是正确的,AsyncRendering
也是正确的,在这两种状态下都检查过,问题没有得到解决。
-cookieless
设置为“假”
-ReportViewer 版本如下:
任何帮助我指出正确方向的帮助将不胜感激。谢谢 :)
c# - 是否可以共享 SQL Server 数据库以在 Asp.Net Web 窗体中存储会话状态
我有一个使用存储在 SQL Server 中的会话状态的 Asp.Net Web 表单应用程序。
我在本文之后创建了这个会话状态数据库 - 执行InstallSqlState.sql
位于以下位置的脚本system drive\Windows\Microsoft.NET\Framework\version\
:
另一个应用程序是否有必要创建单独的数据库来存储会话状态?
什么是最佳实践 - 将会话状态保存在一个数据库中或使用单独的数据库?
如果我每个应用程序只使用一个会话状态数据库 - 是否存在一些问题 - 可能是安全问题等?
c# - 如何让 AdGroupAuthProvider 与 OrmLiteCacheClient 一起工作?
我希望最终用户可以访问该应用程序,无论 LoadBalancer 重定向哪个服务器节点。所以,我想使用 OrmLiteCacheClient 在 MSSQL DB 中存储会话。
我有以下代码(只有部分 SetupPlugins):
如何让 AdGroupAuthProvider 与 OrmLiteCacheClient 一起工作?上面的程序构建,我可以进行身份验证。但是,CacheEntry MSSQL 表是空的。
asp.net-mvc - 将 ASP.NET InProc 会话状态模式更改为 State Server 或 SQL Server State
首先,我是 Web 应用程序编程的新手。我来自桌面应用程序(WinForms 和 WPF)。最近,我被分配了一个过去由其他人制作的项目。这个项目是在 ASP.NET MVC 中完成的,它使用 InProc 会话状态模式。
现在,我想构建一个网络园艺,即为应用程序池使用多个工作进程。我用谷歌搜索,发现 InProc 会话不适用于网络园艺,因为应用程序池中的每个工作进程都使用自己的会话状态。所以我打算把它切换到另一种会话状态模式,比如State Server或者SQL Server。
现在我有一个疑问。除了在 Web.config 中更改会话状态模式:
... 我需要做一些额外的工作吗?例如重新编程 ASP.NET MVC 应用程序、配置或其他一些东西以使其工作?
下面我分享一些有趣的链接:
session - 与多个域的子域共享会话
我有 2 个 Asp.Net Core 2.2 应用程序,我想在它们之间共享会话。我已经在 SQL 数据库中设置了会话,并且都连接正常。它们位于不同的子域上。我知道我可以将 Cookie.Domain 设置为启动文件,这将在基本层面解决问题,因此每个应用程序都会创建 cookie 以便可以访问它。例如
目前这些站点无法访问彼此的会话 cookie。
如果我将域 cookie 设置为“.website.com”,那么两者都应该能够访问它。
问题是我们有多个使用这个网站的域,所以它可能是:
我需要能够将当前主机名注入启动 cookie 域,以便根据活动网站的域动态设置它。
这是可能吗?
在此先感谢,大卫
asp.net - 通过 aspnet_regsql.exe 创建 ASP.NET 会话表的各种困难
我们正在尝试将我们的 Azure Web 应用程序之一的 ASP.NET 会话状态移动到数据库中,看起来 aspnet_regsql.exe 工具是要走的路。不幸的是,我陷入了以下几个问题。这是一个 Azure SQL 数据库,我正在使用服务器的管理员帐户进行连接。
- 我最初想将会话表添加到我们现有的数据库中,所以我运行了
.\aspnet_regsql.exe -U adminusername -P adminpassword -S servername.database.windows.net -d databasename -ssadd -sstype c
. 抛出异常“数据库'databasename'已经存在。选择不同的数据库名称” - 省略数据库名称并再次运行它会在大约 30 秒后引发异常:“Execution Timeout Expired”,这只是 SqlCommand.CommandTimeout 的默认值。这发生在执行“CREATE DATABASE”命令时。我尝试手动创建数据库,但由于某种原因大约需要 50 秒。此数据库为 S0 层,未承受任何负载
- 在已经创建的数据库上再次运行 aspnet_regsql(因为它是幂等的,对吗?)会导致“数据库已存在”错误,就像预先创建一个空数据库以供其启动一样。
- 没有可以让我增加超时的标志,并且我无法使用 -C(连接字符串)标志设置命令超时
- 添加 -sqlexportonly 标志以生成脚本并直接运行它也不起作用(是的,我知道我不应该直接运行 InstallSqlState.sql)。它会抛出一大堆错误消息,例如:
Reference to database and/or server name in 'msdb.dbo.sp_add_job' is not supported in this version of SQL Server.
USE statement is not supported to switch between databases.
- 这让我觉得这个脚本可能与 Azure SQL 数据库有一些问题......
有没有人有任何想法?
更新:
看起来所有涉及“msdb”的错误都与删除和重新添加名为“Job_DeleteExpiredSessions”的数据库作业有关。Azure SQL 不支持数据库作业,所以我能看到的唯一选项是
- 而是在 VM 上运行 SQL(成本要高得多,而且我宁愿坚持使用平台服务而不是管理 VM)
- 实施其中一种“弹性工作代理”
- 也许将相同的功能移到其他地方(例如存储过程)?
asp.net - ASP.NET SQL 会话状态中的重复引用
我运行一个 ASP.NET Web 应用程序,只是注意到会话状态中重复引用的行为在 InProc 和 ASP.NET SQL 会话状态之间有所不同。
使用 InProc,重复引用似乎在多个请求中保持引用相等而不会出现问题。
使用 SQL,行为似乎是:
- 如果存储在会话本身中的对象包含重复引用,则它们保持引用相等
- 如果两个单独存储在 session (
Session["a"]
和Session["b"]
) 中的对象包含它们之间的重复引用,则在后续请求中,这些对象是独立的副本
我发现很难找到任何确认,所以它是否正确,如果不是,我在哪里可以找到文档?
c# - 如何在两台服务器之间共享 ASP.NET Core 3 中的会话?
ASP.NET Core 3 中的一个如何在两台服务器之间共享会话(负载平衡)?会话可以在多个 Web 服务/API 和主 ASP.NET MVC 应用程序之间共享吗?
我对 .NET Core 3 非常陌生,我习惯于在 ASP.NET Framework MVC 中处理会话状态(在此就像在站点的 IIS 配置中使用相同的机器密钥一样简单),但我了解到.NET Core 3 的一切都发生了变化,此外,随着新版本的推出,许多文档都非常过时/过时,.NET Core 1 与更高版本无关,2 与 3 无关,而且它还需要许多 NuGet 包可能会也可能不再起作用。
目前我已经使用 .NET Core 3 成功实现了 SQL 会话存储,但是机器密钥选项不再显示在 IIS 中,我真的不知道如何在appsettings.json
文件中配置它们(如果仍然使用的话)。
我们的设置是 2 台服务器,它们都必须共享会话信息,使用 F5 负载均衡器,我们使用 .NET Framework MVC 的旧应用程序配置如下,我需要帮助以实现相同的结果,但使用 .NET Core 3。
我通读了https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/web-farm?view=aspnetcore-3.1但它并没有真正解释如何实际做任何事情
此外,这https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-3.1帮助配置 SQL 会话存储,但不帮助配置两台服务器之间的共享