服务器端请求微信登陆授权接口一直超时问题

服务器端请求微信登陆授权接口一直超时问题,第1张

环境: 服务器系统:centos 7.2 站点环境:nginx 遇到问题: 1、微信小程序端请求服务器登陆接口,服务端收到请求后向微信接口服务器请求数据,请求成功后返回数据给客户端,但是请求微信接口服务器经常性出现超时问题,请求超时时间设置成10S依然会提示超时,只有偶尔的一两次会请求成功; 解决方法: 1、首先在服务器上通过终端先ping一下微信的接口域名:api.weixin.qq.com如果发现域名解析ip地址时间非常长的话说明是dns解析超时的问题; 2、找到原因后,更改服务器etc/resolv.conf文件中的dns服务器地址 你可以测试一下哪个dns在你服务器上解析速度最快你就把相应的ip地址放到最上面就可以了; 3、基本上你调整过之后,你在访问微信的登陆授权接口基本上就是毫秒级别的; 备注:windows系统的服务器如果也是dns解析慢的问题,也可以参考这种方式进行修改,不过估计文件路径不一样可以自行百度;

项目地址: https://github.com/liangjinquan17/spring-security-demo

配置AuthorizationServerConfigurerAdapter需要注意的地方有三,1.密码校验方式 (PasswordEncoder)2.AuthenticationManager 3.UserDetailsService

1.新建类继承AuthorizationServerConfigurerAdapter,重写三个config方法,注入PasswordEncoder、AuthenticationManager、UserDetailsService。这三个实现类均有WebSecurityConfigurerAdapter类提供。

2.首先我们来看下WebSecurityConfigurerAdapter类是怎样提供PasswordEncoder、AuthenticationManager、UserDetailsService的。

3.接着我们来看下继承AuthorizationServerConfigurerAdapter的新类

4.调用授权接口获取token值:

http://localhost:8080/oauth/token?username=admin&password=admin&grant_type=password&scope=admin

注意了,我们不是配置了client和secret的,这时候需要把这两个参数带上,可以放header也可以放body里面;

5.至于oauth2的四种授权方式我就不一一配置了。

首先你要明白什么叫终端服务器!终端服务器是为RS-2323终端到TCP/IP之间完成数据转换的通讯接口协议转换器。提供RS-232终端与TCP/IP网络的数据双向透明传输,提供串口转TCP/IP功能,RS-232转TCP/IP的解决方案。可以让RS-232串口设备立即联接网络。

解决方案: 使用终端服务器授权来确定许可证服务器中所剩 CAL 的数量。要打开终端服务器授权,请依次单击“开始”、“程序”、“管理员工具”,然后指向“终端服务器授权”。如果许可证服务器中没有剩余的 CAL 颁发给客户端,那么请根据需要购买并安装其他 CAL。

另请参阅:购买客户端访问许可证;安装客户端访问许可证;购买并在终端服务器许可证服务器上安装客户端访问许可证

原因:终端服务器中的终端服务器授权模式可能设置为“每设备”,而许可证服务器可能仅有“每用户 CAL”。如果是这种情况,那么许可证服务器将仅颁发临时许可证,这是不能升级的。当临时许可证还有几天即将过期时,“事件 ID 26,源:应用程序弹出消息”将显示在客户端上的应用程序事件日志中。该事件消息指出临时许可证还有多少天即将过期。与此类似,“事件 ID 1011,源 TermService”也将显示在终端服务器上的应用程序事件日志中。

解决方案: 将终端服务器授权模式从“每设备”更改为“每用户”。

要点

终端服务器不监视每用户 CAL。这意味着即使许可证服务器数据库中只有一个每用户 CAL,使用它时,每用户 CAL 也不会减少。它不会通过从最终用户许可协议 (EULA) 要求中删除管理员来为每一个用户提供有效的终端服务器 CAL。如果未在使用每设备 CAL 却无法为每个用户获取一个每用户 CAL,则违反了EULA。 请参阅以下文本,该文本选自 Windows Server 2003 的 EULA:

“您可以使用两种不同的 TS CAL:“设备”和“用户”。每个 TS 设备 CAL 允许一个设备(由任何用户使用)执行任何服务器上的 Windows 会话。每个 TS 用户 CAL 允许一个用户(使用任何设备)执行任何服务器上的 Windows 会话。您可同时混合使用 TS 设备 CAL 和 TS 用户 CAL,并可以将其与环境中的服务器软件同时使用。您可以让终端服务器请求每用户许可证或每设备许可证(默认值),但不能同时请求两种许可证。”

另请参阅: 配置终端服务器授权模式

原因: 终端服务器可能找不到许可证服务器。

解决方案:

请执行以下步骤:

1.确认是否已正确安装许可证服务器。

2.确认终端服务器授权服务是否正在许可证服务器上运行。

3.通过确保在每一台计算机上正确配置了域名系统 (DNS),验证客户端、终端服务器和许可证服务器可以通讯。要完成上述操作,请在每台计算机上使用 IP 地址、FQDN 和 NetBIOS 名称分别针对其他两台计算机运行 ping 命令。如果任何 ping 命令失败,请验证网络上的 DNS 配置。

4.在终端服务器上,设置一个要连接到的首选授权服务器。通过如下方法可完成该操作:使用注册表、WMI 脚本,或者在带有 Service Pack 1 的 Windows Server 2003 中,使用组策略设置或终端服务器配置。

另请参阅:安装终端服务器授权;设置首选终端服务器许可证服务器;终端服务器许可证服务器角色

解决方案: 如果上一个解决方案不能解决此问题,请在客户端上创建一个 MSLicensing 注册表项及其子项的备份,然后执行下列操作删除原始项和子项:

1.在客户端上,导航到下列注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing。

2.单击 MSLicensing。

3.在“注册表”菜单上,单击“导出注册表文件”。

4.在“文件名”框中,键入 mslicensingbackup,然后单击“保存”。如果以后需要还原此注册表项,请双击 mslicensingbackup.reg。

5.在“编辑”菜单上,单击“删除”,然后单击“是”确认删除 MSLicensing 注册表子项。

6.关闭注册表编辑器并重新启动计算机。客户端重新启动时,将重新创建缺少的注册表项。

警告

编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。

请参阅: 如何在 Windows 2000 中使用 RestrictAnonymous 注册表值 ( )

另请参阅:

终端服务器授权宽限期;

安装终端服务器授权;

激活终端服务器许可证服务器;

购买客户端访问许可证;

安装客户端访问许可证

购买并在终端服务器许可证服务器上安装客户端访问许可证;

激活终端服务器许可证服务器。

其他参考解决办法:

请将“终端服务配置”中的“授权模式”更改为“每用户”。为此,请按照下列步骤操作:

1. 单击“开始”,指向“管理工具”,然后单击“终端服务配置”。??

2. 单击“服务器设置”,然后双击“授权模式”。

3. 将“授权模式”更改为“每用户”,然后单击“确定”。

目前,Window Server 2003 不管理“用户 CAL”。这就是说,即使许可证服务器数据库中有一个“用户 CAL”,它在被使用时也不会减少。这样就不会为了让每个用户都有一个有效的终端服务器 (TS) CAL 而根据“最终用户许可协议”(EULA) 的要求删除管理员。在没有使用“设备 CAL”的情况下,如果不是每个用户都有一个“用户 CAL”,就会违反 EULA。 一、要避免再次出现这样的情况,有3个办法:??

1、在Windows 2003 服务器上通过组策略进行设置来解决问题:单击“开始→运行”,输入“gpedit.msc”,回车后打开组策略窗口,然后依次定位到“计算机配置→管理模板→终端服务→会话”,然后在右侧窗口中双击“为断开的会话设置时间限制”,在打开的窗口中将“结束断开连接的会话”时间设置为5分钟。

2、开始→控制面版→授权,更改连接数。

3、终极解决办法也是最好的解决方法还是每次断开远程服务器连接时通过注销的方式。

二、恰巧遇到终端连接超出了最大连接而导致不能登录的解决办法:

由于windows2003默认仅支持2个终端用户的登陆。当“终端连接超出了最大连接”的情况出现导致不能登录时,可以:

1、给机房管理员打电话要求重启服务器。‘.

2、使用专用远程连接器。

3、运行 mstsc /v:IP /console ,连接到远程系统的0会话。

4、在一台Windows2003的机器上运行“tsmmc.msc”,打开远程桌面连接,添加一个新的连接,输入远程服务器的IP地址、远程登录帐号和密码,登录到远程服务器桌面(图1),再紧接着用“终端服务管理器”注销掉多余的用户就可以立即解决终端 详细出处参考:

首先你要明白什么叫终端服务器!终端服务器是为RS-2323终端到TCP/IP之间完成数据转换的通讯接口协议转换器。提供RS-232终端与TCP/IP网络的数据双向透明传输,提供串口转TCP/IP功能,RS-232转TCP/IP的解决方案。可以让RS-232串口设备立即联接网络。

解决方案: 使用终端服务器授权来确定许可证服务器中所剩 CAL 的数量。要打开终端服务器授权,请依次单击“开始”、“程序”、“管理员工具”,然后指向“终端服务器授权”。如果许可证服务器中没有剩余的 CAL 颁发给客户端,那么请根据需要购买并安装其他 CAL。

另请参阅:购买客户端访问许可证;安装客户端访问许可证;购买并在终端服务器许可证服务器上安装客户端访问许可证

原因:终端服务器中的终端服务器授权模式可能设置为“每设备”,而许可证服务器可能仅有“每用户 CAL”。如果是这种情况,那么许可证服务器将仅颁发临时许可证,这是不能升级的。当临时许可证还有几天即将过期时,“事件 ID 26,源:应用程序弹出消息”将显示在客户端上的应用程序事件日志中。该事件消息指出临时许可证还有多少天即将过期。与此类似,“事件 ID 1011,源 TermService”也将显示在终端服务器上的应用程序事件日志中。

解决方案: 将终端服务器授权模式从“每设备”更改为“每用户”。

要点

终端服务器不监视每用户 CAL。这意味着即使许可证服务器数据库中只有一个每用户 CAL,使用它时,每用户 CAL 也不会减少。它不会通过从最终用户许可协议 (EULA) 要求中删除管理员来为每一个用户提供有效的终端服务器 CAL。如果未在使用每设备 CAL 却无法为每个用户获取一个每用户 CAL,则违反了EULA。 请参阅以下文本,该文本选自 Windows Server 2003 的 EULA:

“您可以使用两种不同的 TS CAL:“设备”和“用户”。每个 TS 设备 CAL 允许一个设备(由任何用户使用)执行任何服务器上的 Windows 会话。每个 TS 用户 CAL 允许一个用户(使用任何设备)执行任何服务器上的 Windows 会话。您可同时混合使用 TS 设备 CAL 和 TS 用户 CAL,并可以将其与环境中的服务器软件同时使用。您可以让终端服务器请求每用户许可证或每设备许可证(默认值),但不能同时请求两种许可证。”

另请参阅: 配置终端服务器授权模式

原因: 终端服务器可能找不到许可证服务器。

解决方案:

请执行以下步骤:

1.确认是否已正确安装许可证服务器。

2.确认终端服务器授权服务是否正在许可证服务器上运行。

3.通过确保在每一台计算机上正确配置了域名系统 (DNS),验证客户端、终端服务器和许可证服务器可以通讯。要完成上述操作,请在每台计算机上使用 IP 地址、FQDN 和 NetBIOS 名称分别针对其他两台计算机运行 ping 命令。如果任何 ping 命令失败,请验证网络上的 DNS 配置。

4.在终端服务器上,设置一个要连接到的首选授权服务器。通过如下方法可完成该操作:使用注册表、WMI 脚本,或者在带有 Service Pack 1 的 Windows Server 2003 中,使用组策略设置或终端服务器配置。

另请参阅:安装终端服务器授权;设置首选终端服务器许可证服务器;终端服务器许可证服务器角色

解决方案: 如果上一个解决方案不能解决此问题,请在客户端上创建一个 MSLicensing 注册表项及其子项的备份,然后执行下列操作删除原始项和子项:

1.在客户端上,导航到下列注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing。

2.单击 MSLicensing。

3.在“注册表”菜单上,单击“导出注册表文件”。

4.在“文件名”框中,键入 mslicensingbackup,然后单击“保存”。如果以后需要还原此注册表项,请双击 mslicensingbackup.reg。

5.在“编辑”菜单上,单击“删除”,然后单击“是”确认删除 MSLicensing 注册表子项。

6.关闭注册表编辑器并重新启动计算机。客户端重新启动时,将重新创建缺少的注册表项。

警告

编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。

请参阅: 如何在 Windows 2000 中使用 RestrictAnonymous 注册表值 ( )

另请参阅:

终端服务器授权宽限期;

安装终端服务器授权;

激活终端服务器许可证服务器;

购买客户端访问许可证;

安装客户端访问许可证

购买并在终端服务器许可证服务器上安装客户端访问许可证;

激活终端服务器许可证服务器。

其他参考解决办法:

请将“终端服务配置”中的“授权模式”更改为“每用户”。为此,请按照下列步骤操作:

1. 单击“开始”,指向“管理工具”,然后单击“终端服务配置”。??

2. 单击“服务器设置”,然后双击“授权模式”。

3. 将“授权模式”更改为“每用户”,然后单击“确定”。

目前,Window Server 2003 不管理“用户 CAL”。这就是说,即使许可证服务器数据库中有一个“用户 CAL”,它在被使用时也不会减少。这样就不会为了让每个用户都有一个有效的终端服务器 (TS) CAL 而根据“最终用户许可协议”(EULA) 的要求删除管理员。在没有使用“设备 CAL”的情况下,如果不是每个用户都有一个“用户 CAL”,就会违反 EULA。 一、要避免再次出现这样的情况,有3个办法:??

1、在Windows 2003 服务器上通过组策略进行设置来解决问题:单击“开始→运行”,输入“gpedit.msc”,回车后打开组策略窗口,然后依次定位到“计算机配置→管理模板→终端服务→会话”,然后在右侧窗口中双击“为断开的会话设置时间限制”,在打开的窗口中将“结束断开连接的会话”时间设置为5分钟。

2、开始→控制面版→授权,更改连接数。

3、终极解决办法也是最好的解决方法还是每次断开远程服务器连接时通过注销的方式。

二、恰巧遇到终端连接超出了最大连接而导致不能登录的解决办法:

由于windows2003默认仅支持2个终端用户的登陆。当“终端连接超出了最大连接”的情况出现导致不能登录时,可以:

1、给机房管理员打电话要求重启服务器。‘.

2、使用专用远程连接器。

3、运行 mstsc /v:IP /console ,连接到远程系统的0会话。

4、在一台Windows2003的机器上运行“tsmmc.msc”,打开远程桌面连接,添加一个新的连接,输入远程服务器的IP地址、远程登录帐号和密码,登录到远程服务器桌面(图1),再紧接着用“终端服务管理器”注销掉多余的用户就可以立即解决终端 详细出处参考:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/804578.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存