错误代码0x800700b7是啥情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误代码0x800700b7是啥情况相关的知识,希望对你有一定的参考价值。
安装时候出现错误代码0x800700b7,确保文件存在,是什么原因
1、安装Windows7系统出现错误代码0x800700B7的解决方法
第一步:更改设置,显示系统的隐藏文件和文件夹。
左键单击:资源管理器 - 组织 - 文件夹和搜索选项 - 查看,找到:显示隐藏的文件、文件夹和驱动器,并左键点击选中,然后点击:应用 - 确定。
2、第二步:添加组或用户名:SYSTEM,或者修改SYSTEM的权限。
打开计算机 - C盘 - 用户 - gong - AppData - Local - Temp;
3、右键单击:Temp - 属性 - 安全;
4、在Temp属性安全窗口点击:编辑;
5、在弹出的窗口点击:添加;
6、这时会弹出选择用户或组的窗口,再输入对象名称来选择(E)栏中输入:SYSTEM,再点击:确定。
7、回到Temp属性窗口,选择:SYSTEM,在SYSTEM的权限(P)栏中的完全控制和修改的允许小方框内点击打上勾,再点击:应用 - 确定;
8、回到Temp属性的安全窗口再点击:确定。
9、第三步:重启计算机,再进行Windows 7系统的安装。
参考技术A 设置的不对,所以重装系统过程报错,如果你装的是微软原版,你可以:具体操作如下:
1.计算机-组织-文件夹和搜索选项-查看-将"隐藏受保护的系统操作文件"前的复选框去掉并将"显示文件、文件夹和驱动器"前的复选框选上-确定.
2.C-用户-xxx(用户名)-AppData-Local-Temp-右键-属性-安全-添加-选择用户或组-在"输入对象名称来选择"下写上"SYSTEM"-确定.
3.回到Temp属性界面-选择"SYSTEM"-将SYSTEM的权限下的"完全控制"和"修改"前的复选框选上-确定.
4.回到Temp属性界面-确定. 参考技术B 尊敬的联想用户您好,根据您的提示,可能是电脑的安装程序出现错误引起的,建议您尝试重新下载程序的安装文件,再观察运行情况。本回答被提问者和网友采纳
在错误情况下从 WebClient 获取响应正文的正确方法是啥?
【中文标题】在错误情况下从 WebClient 获取响应正文的正确方法是啥?【英文标题】:What's the correct way to get the response body from a WebClient in an error case?在错误情况下从 WebClient 获取响应正文的正确方法是什么? 【发布时间】:2019-11-09 13:48:36 【问题描述】:我是 WebClient
和响应式编程的新手。我想从请求中获取响应正文。如果发生错误,必须记录 http 代码、标头和正文,但仍应返回正文。
经过大量挖掘和谷歌搜索,我找到了两种解决方案。但在我看来,两者都过于复杂。有没有更简单的解决方案?
留在Mono
我找到了这个解决方案:
public Mono<String> log(ProtocolLine protocolLine)
return webClient.post()
.uri("/log")
.body(BodyInserters.fromObject(protocolLine))
.exchange()
.flatMap(clientResponse ->
Mono<String> stringMono = clientResponse.bodyToMono(String.class);
CompletableFuture<String> stringCompleteFuture = new CompletableFuture<String>();
Mono<String> bodyCompletedMono = Mono.fromFuture(stringCompleteFuture);
if (clientResponse.statusCode().isError())
stringMono.subscribe(bodyString ->
LOGGER.error("HttpStatusCode = ", clientResponse.statusCode());
LOGGER.error("HttpHeaders = ", clientResponse.headers().asHttpHeaders());
LOGGER.error("ResponseBody = ", bodyString);
stringCompleteFuture.complete(bodyString);
);
return bodyCompletedMono;
);
基于Flux
,它需要更少的代码。但如果我知道只会有一个结果,我想我不应该使用 Flux。
public Flux<String> log(ProtocolLine protocolLine)
return webClient.post()
.uri("/log")
.body(BodyInserters.fromObject(protocolLine))
.exchange()
.flux()
.flatMap(clientResponse ->
Flux<String> stringFlux = clientResponse.bodyToFlux(String.class).share();
if (clientResponse.statusCode().isError())
stringFlux.subscribe(bodyString ->
LOGGER.error("HttpStatusCode = ", clientResponse.statusCode());
LOGGER.error("HttpHeaders = ", clientResponse.headers().asHttpHeaders());
LOGGER.error("ResponseBody = ", bodyString);
);
return stringFlux;
);
【问题讨论】:
【参考方案1】:这两种解决方案都是丑陋和错误的。您几乎不应该在反应式管道的中间订阅。订阅者通常是调用客户端,而不是您自己的应用程序。
public Mono<String> log(ProtocolLine protocolLine)
return webClient.post()
.uri("/log")
.body(BodyInserters.fromObject(protocolLine))
.exchange()
.flatMap(clientResponse -> clientResponse.bodyToMono(String.class)
.doOnSuccess(body ->
if (clientResponse.statusCode().isError())
log.error("HttpStatusCode = ", clientResponse.statusCode());
log.error("HttpHeaders = ", clientResponse.headers().asHttpHeaders());
log.error("ResponseBody = ", body);
));
在这里你可以看到思维方式。我们总是使用我们的clientResponse
并将它的主体映射到一个字符串。然后,当订阅者(我们的调用客户端)使用此 Mono
时,我们 doOnSuccess
并检查状态代码是否有错误,如果是这种情况我们记录。
doOnSuccess
方法返回 void,因此它不会“消耗”单声道或任何东西,它只是在这个 Mono
说它“本身有东西”时触发一些东西,当它“完成”时,可以说。
这可以与Flux
以相同的方式使用。
【讨论】:
感谢您的回答。如果出现错误,我可以知道如何抛出异常。 @ThomasAndolf 如果使用retrieve() 而不是exchange(),你会怎么做?并且成功响应和错误响应包含不同的类型(成功返回SuccessResponse.class,错误返回ErrorResponse.class,都序列化成json)? 您使用onStatus
方法,如官方文档所示。 docs.spring.io/spring/docs/current/spring-framework-reference/… 然后你要求的是你想从同一个函数返回 2 种不同类型的对象。您不能从同一函数返回(例如)String 或 Int。如果您阅读反应器文档,您会返回一个单声道错误(包含 say en 异常或其他内容),然后在链中稍后会出现 .doOnError
。
在 Spring 5 中,exchange() 已被弃用:是否有另一种方法可以在发生错误时获取正文?使用retrieve() 或exchangeToMono(),我就是搞不定。
ExchangeToMono(response -> ...) 给你一个响应,你可以做任何你想做的事以上是关于错误代码0x800700b7是啥情况的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 错误 500.19 - Internal Server Error错误代码0x800700b7 怎么解决
Windows 无法安装所需的文件。 请确保安装所需的所有文件可用,并重新启动安装。 错误代码: 0x800700B7
错误代码: 0x800700b7 配置错误:定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
安装 Windows 和 Configuration Manager 步骤报错0x800700B7
IIS Express - 'fileExtension' 的'mimeMap' 上的 HTTP 错误 500.19 0x800700b7 设置为 '.svg'
thinkpad t470。Win10。应用容器配置文件失败,错误为 0x800700B7,因为无法注册 AppContainer SID。