整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

当C#中的Console.WriteLine遭遇控制台不可用,将如何“自救”?

们总是期望一切都能按照计划顺利进行。但现实往往充满了各种未知的挑战,比如,当我们的代码在执行Console.WriteLine时,突然发现控制台不可用了,这该如何是好呢?今天,我们就来聊聊这个有趣而又实用的话题,看看代码是如何在这种极端情况下“自救”的!

比如程序需要从网络上下载一个网页内容,并在控制台中显示出来。你使用了Task来异步处理下载和解析操作,并在最后使用Console.WriteLine输出结果。但是,如果在这个关键时刻,控制台突然不可用了(比如,你的程序是在一个没有控制台界面的服务中运行的),那么你的代码会如何应对呢?


在C#中,当Console.WriteLine尝试在不可用的控制台上输出时,通常会抛出一个异常。但是,由于我们的outputTask是一个Task,并且我们没有在代码中显式地捕获这个异常,所以这个异常会被默默地忽略掉。换句话说,如果Console.WriteLine失败了,我们的程序不会给出任何错误提示,而是会继续执行下一个任务。

如何改进? 为了避免这种情况,我们可以考虑在outputTask中添加一个异常处理机制。例如,我们可以使用try-catch语句来捕获并处理可能发生的异常。但是,由于outputTask是一个Task,我们不能直接在它的ContinueWith委托中使用try-catch。相反,我们可以使用Task.ContinueWith的重载版本,它接受一个TaskContinuationOptions参数,并允许我们指定一个只在原始任务失败时执行的任务。

改进后的代码:

// ...之前的代码保持不变...

Task outputTask = parseTask.ContinueWith(t2 =>
{
    try
    {
        Console.WriteLine(t2.Result);
    }
    catch (Exception ex)
    {
        // 如果Console.WriteLine抛出异常,这里会捕获并处理
        Console.Error.WriteLine("输出数据时发生异常: " + ex.Message);
    }
}, TaskContinuationOptions.OnlyOnRanToCompletion);

// 加上对异常情况的处理
outputTask.ContinueWith(t =>
{
    if (t.Exception != null)
    {
        // 如果outputTask本身抛出异常(非Console.WriteLine引起),也进行处理
        foreach (var innerEx in t.Exception.InnerExceptions)
        {
            Console.Error.WriteLine("outputTask中发生异常: " + innerEx.Message);
        }
    }
}, TaskContinuationOptions.NotOnRanToCompletion);
await outputTask;

在编程中,异常处理是非常重要的。通过添加适当的异常处理机制,在遇到问题时能够给出有用的反馈,并尽可能地恢复正常运行。希望这个示例能够帮助你更好地理解和处理C#中的异常!

录柯尼卡美能达后台网页提示错误代码503 Service Unavailable服务不可用

若你设置扫描需要进入打印机后台网页,输入正确的柯美打印机IP地址,网页却无法打不开,检查了打印机IP地址设置正确,电脑也可以ping得通打印机IP地址,但是就是无法打开柯美打印机网页后台,那你应该检查的那些设置呢?

一、打印机故障

柯尼卡美能达C300i系列、柯尼卡美能达C368系列

德凡ineo+360i系列

震旦ADC309系列、震旦ADC307系列

二、打印机故障

先看看柯尼卡美能达打印机网页后台打不开的样子,如下图所示:


输入柯美打印机IP地址回车后,提示错误代码503 Service Unavailable,服务不可用。

三、打印机故障解决方法

若你想让你的柯尼卡美能达打印机关闭或打开网页,有两个设置位置可以更改,关闭或打开其中一个即可。

1、设置方法一:

柯尼卡美能达C300i/德凡ineo+360i/震旦ADC309系列:

点屏幕左下角的房子图标“菜单”,点“机器设置”,点“管理员设置”,输入管理员密码12345678或者2个12345678,点“安全”,点“快速安全设置”,“网络连接”右侧的开关打开。


柯尼卡美能达C368/震旦ADC307系列:

点屏幕右下角的房子图标“菜单”,点“机器设置”,点“管理员设置”,输入管理员密码12345678或者2个12345678,点“安全设置”,点“快速安全设置”,点“PSWC设置”,选择“开启”(支持电脑访问柯尼卡美能达打印机网页后台),点“OK”即可。


2、设置方法二:

柯尼卡美能达C300i/德凡ineo+360i/震旦ADC309系列:

点屏幕左下角的房子图标“菜单”,点“机器设置”,点“管理员设置”,输入管理员密码12345678或者2个12345678,点“网络”,点“HTTP服务器设置”,“Web Connection设置”右侧的开关打开。


柯尼卡美能达C368/震旦ADC307系列:

点屏幕右下角的房子图标“菜单”,点“机器设置”,点“管理员设置”,输入管理员密码12345678或者2个12345678,点“网络设置”,点“HTTP服务器设置”,点“PSWC设置”,选择“选择“开启”(支持电脑访问柯尼卡美能达打印机网页后台),点“OK”即可。


其实,它们是同一个功能,当你更改其中任何一个设置后,另一个也跟着改变了。

三、广州打印机出租

1、保养:每月免费提供1-2次上门保养服务,及时清洁和检修打印机。以保证打印机正常运作。

2、维修:提供“528不停机”服务,不限次数叫修,上门免收上门费,免费更换打印机所需零件。

3、耗材:免费提供原厂原装碳粉、硒鼓等打印机所需耗材。提供免费上门更换耗材服务。

4、换机:若打印机多次维修且无法解决问题,可免费更换相同或更高档次打印机。

5、广州打印机出租,找广州欧菲斯,租金低至9.9元/天起,免费试用,试用满意再签约,广州打印机租赁官网www.gzofsbg.com,或联系吴先生,15360417977

6、广州打印机出租服务区域,广州市越秀区、荔湾区、天河区、海珠区、白云区、番禺区、黄埔区。




文章来源:https://gzofsbg.com/repair18.html

于现代网民来说

饭可以不吃,网不能不上

聚会聊天已经变为聚会开黑

坐车等人不摸下手机浑身难受

洗完澡必须刷个抖音否则完全无法入睡

躺床上办公已经不再是梦,

这个时代靠着网络足以“坐井观天”!

互联网行业的发达带给人们前所未有的便捷,但是人们从没想过,万一哪天网络崩溃,自己还能否正确找到回家的路?

众所周知,浏览器是浏览网页的入口,当浏览网页的过程中出现了网页无法访问的时候,最常见的处理方式就是重启浏览器或者重启电脑,如果还不行很多人就不知道要如何处理了,尤其是一些相对特殊的网站,比如说政府或企业的采购网站,一旦访问不了,不管是对服务端还是客户端来说,造成的后果往往是比较严重的。

网络崩了你可不能崩

接下来我们就来盘点1下

访问http网页出错的常见原因和解决方案

DNS缓存问题

很多人知道有DNS缓存这个东西,但是并不知道这个东西是干什么用的。

首先我们要明白DNS和IP地址之间的关系,DNS即域名,相当于是各大网站在网络上的门牌,而IP地址则是具体的门牌号,通过DNS解析服务器对DNS进行解析,解析出IP地址之后才能进行访问。

DNS缓存的作用就是记录在一段时间之内解析过的域名及其对应的IP地址,如果在设定的时间之内再次访问这个网站,设备则不会再次进行解析,而是根据DNS缓存里的记录进行访问,提高访问效率。但是当DNS缓存过高的时候,经常会出现访问网站的时候解析失败,自然而然也就访问失败了。最经典的案例就是电脑能够登录QQ,同时CMD控制台也能ping通www.baidu.com,但是用浏览器访问百度的时候就是打不开,或者打开的速度极慢,此时通常都是DNS缓存出了问题。

解决DNS缓存问题的方法也很简单,对于电脑来说,可以重启电脑,或者通过运行—CMD—输入ipconfig/flushdns的方式进行DNS缓存列表重置,而对于路由器来说,可以直接重启路由器,或者减小DNS缓存的老化时间,让其缓存保留的时间缩短,以此方式控制DNS缓存在设备上的保留时间。


图1 重置电脑的DNS缓存

DNS服务器配置不当

DNS配置不当容易导致访问网页的速度极慢,甚至有可能无法解析,导致访问网页失败,比如办理的是电信的宽带线路,但是使用的是移动或者联通的DNS服务器,此时可能导致DNS解析失败,造成访问失败。

一般来说,办理宽带线路的时候,运营商已经设置好了账号对应的DNS地址,在光猫或者路由器拨号的时候就能获取到DNS服务器地址。但是有的用户可能会觉得运营商设置的服务器解析比较慢,喜欢自己配置速度比较快的服务器,但是配置不当反而导致解析速度降低。配置路由器的静态DNS也比较简单,可以通过网络配置—广域网—静态DNS自行配置,可以使用默认网关作为静态DNS,也可以使用国内免费通用的DNS地址,比如114.114.114.114等,路由器设置好之后,连接路由器的电脑直接动态获取就可以了。


图2 配置路由器的静态DNS

这里推荐一些常用的免费通用DNS服务器,以供参考:


图3 常用的免费通用DNS服务器

DNS劫持

正常来说,域名和IP地址是一一对应的关系,就像人跟身份证一样。访问网页的流程是当你输入想要访问的域名之后,本来DNS服务器解析出来并返回给你的地址为域名对应的IP地址,比如说为1.1.1.1,一旦DNS发生劫持,DNS服务器返回给你的地址或许就会是2.2.2.2,此时你访问到的网站将不再是你原来想要访问的那个网站,甚至DNS会进行判断,如果这个流量是DNS服务器不感兴趣的流量将直接被丢弃,导致没有地址返回给访问者,访问者没有接收到返回的IP地址,则导致无法访问。

针对这种问题,可以尝试换一个DNS服务器地址进行解析,也可以安装第三方杀毒软件进行防御和修复,或者在路由器上配置相关的DNS防御策略,通过行为管理—域名管理配置相关规则,过滤不安全的域名,提高防御级别。


图4 配置域名安全管理规则

上面说到的都是由于DNS导致网页无法访问的问题,判断是不是DNS导致网页无法访问,可以通过运行—CMD—ping DNS地址排查,如果ping DNS服务器的地址有回显数据,则说明问题并不在DNS,而是要排查浏览器和网站服务器的问题。


图5 ping DNS服务器地址,有回显数据则为正常

浏览器的代理服务器配置不当

很多人浏览网页的时候不希望别人可以通过抓包看到自己真实的IP地址,因此会设置一个代理服务器进行访问,代理服务器可以看作是一台路由器,访问网页的时候会通过设置的代理服务器地址进行访问,但是很多时候会由于配置不当导致访问的流量无法通过路由器,因此无法访问到网页。

此时可以通过打开IE—Internet选项—连接—局域网设置--代理服务器进行代理服务器的相关设置,设置完之后再次访问网页,则会以代理服务器的设置访问,而不是以主机获取到的IP地址进行访问。


图6 代理服务器设置

访问端口错误

http协议默认的监听端口为80,在输入网址的时候,浏览器会默认帮你添加80端口,因此在访问一般网页的时候也就不需要输入端口号。

但是有些比较特殊的网页在开发的时候,为了防止恶意访问,开发人员会设置特定的端口号,比如说维盟路由器默认WEB页面的访问端口号为80,维盟防火墙默认页的面访问端口号为9090,如果在登录的时候不手动输入端口也是无法进入登录页面的,端口号也可以通过登录路由器—高级配置—WEB访问配置—HTTP访问端口进行设置。


图7 WEB访问端口号配置

由于网站服务器的问题导致访问失败

很多时候会由于网站本身的服务器导致网页访问失败,比如说网站当前访问的用户数过多、在短时间内访问当前网站的次数过多等问题,服务器会为了保证其正常运行而拒绝这些用户的访问,导致访问失败。也有可能访问的网站根本就不存在,或者访问的htm文件已经被管理员删除了,也会导致访问失败,这种问题叫做目的地不可达,导致访问失败。

因为服务器导致网页无法访问的原因非常多,一般情况下浏览器也会根据访问失败的原因进行反馈,比如500、501、502、503等,其反馈的信息都是根据失败的原因进行回显,也可以通过打开浏览器—Internet选项—高级,取消“显示友好的http错误提示”,此时可以看到具体的错误提示,比如403错误,403.1为服务器拒绝访问等,每个代码都代表着不同的错误,得到具体的原因之后则可以对症下药,更高效地解决访问失败的问题。


图8 浏览器错误回显信息设置

由于客户端的问题导致访问失败

400、403和404是最经典的客户端问题导致访问失败的原因,400为请求失败,由于输入了错误格式的网址等原因导致无法解析;403为禁止访问,即服务器已经收到了访问请求,但是拒绝该请求;404为无法找到网页对应的htm文件。


关于403错误

小编在昨天遇到一个客户咨询:QQ可以正常登录,CMD控制台可以正常ping通百度,而且其他页面都可以访问,就只有他需要访问的页面出现403错误,此时路由器也可以ping通需要访问的地址,但是就是无法通过页面访问。

登录路由器查看访问控制的日志,发现没有任何拒绝该网站的日志,且路由器上没有做任何关于http协议的访问控制等策略,说明出现此错误并不是由于路由器的原因导致的。

最常见的403错误有禁止服务和账号信息调用错误,首先排查账号信息调用错误的问题,清空浏览器缓存、cookie和网站数据等,重启浏览器重新打开该网址,但是依然出现403错误。

此时怀疑是由于电脑的IP地址被服务器禁止访问该网站所导致,然后该用户将IP地址修改为与现有地址同网段的另一个地址,修改之后重新访问该网站,发现网站已经可以正常访问了,最后将问题锁定在访问被禁止的原因上,修改一个地址即可以访问。

关于访问网页出错的原因非常多,如果细说的话三天三夜都说不完,由于客户端导致的原因甚至要修改访问的证书等等。

各http错误回显码对应的网络故障

2xx 成功

200 正常;请求已完成。

201 正常;紧接 POST 命令。

202 正常;已接受用于处理,但处理尚未完成。

203 正常;部分信息 — 返回的信息只是一部分。

204 正常;无响应 — 已接收请求,但不存在要回送的信息。

3xx 重定向

301 已移动 — 请求的数据具有新的位置且更改是永久的。

302 已找到 — 请求的数据临时具有不同 URI。

303 请参阅其它 — 可在另一URI 下找到对请求的响应,且应使用 GET 方法检索此响应。

304 未修改 — 未按预期修改文档。

305 使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。

306 未使用 — 不再使用;保留此代码以便将来使用。

4xx 客户机中出现的错误

400 错误请求 — 请求中有语法问题,或不能满足请求。

401 未授权 — 未授权客户机访问数据。

402 需要付款 — 表示计费系统已有效。

403 禁止 — 即使有授权也不需要访问。

404 找不到 — 服务器找不到给定的资源;文档不存在。

407 代理认证请求 — 客户机首先必须使用代理认证自身。

415 介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。

HTTP 400 - 请求无效

HTTP 401.1 - 未授权:登录失败

HTTP 401.2 - 未授权:服务器配置问题导致登录失败

HTTP 401.3 - ACL 禁止访问资源

HTTP 401.4 - 未授权:授权被筛选器拒绝

HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败

HTTP 403 - 禁止访问

HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost

HTTP 403.1 禁止访问:禁止可执行访问

HTTP 403.2 - 禁止访问:禁止读访问

HTTP 403.3 - 禁止访问:禁止写访问

HTTP 403.4 - 禁止访问:要求 SSL

HTTP 403.5 - 禁止访问:要求 SSL 128

HTTP 403.6 - 禁止访问:IP 地址被拒绝

HTTP 403.7 - 禁止访问:要求客户证书

HTTP 403.8 - 禁止访问:禁止站点访问

HTTP 403.9 - 禁止访问:连接的用户过多

HTTP 403.10 - 禁止访问:配置无效

HTTP 403.11 - 禁止访问:密码更改

HTTP 403.12 - 禁止访问:映射器拒绝访问

HTTP 403.13 - 禁止访问:客户证书已被吊销

HTTP 403.15 - 禁止访问:客户访问许可过多

HTTP 403.16 - 禁止访问:客户证书不可信或者无效

HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效

HTTP 404.1 - 无法找到 Web 站点

HTTP 404 - 无法找到文件

HTTP 405 - 资源被禁止

HTTP 406 - 无法接受

HTTP 407 - 要求代理身份验证

HTTP 410 - 永远不可用

HTTP 412 - 先决条件失败

HTTP 414 - 请求 - URI 太长

5xx 服务器中出现的错误

500 内部错误 — 因为意外情况,服务器不能完成请求。

501 未执行 — 服务器不支持请求的工具。

502 错误网关 — 服务器接收到来自上游服务器的无效响应。

503 无法获得服务 — 由于临时过载或维护,服务器无法处理请求。

HTTP 500 - 内部服务器错误

HTTP 500.100 - 内部服务器错误 - ASP 错误

HTTP 500-11 服务器关闭

HTTP 500-12 应用程序重新启动

HTTP 500-13 - 服务器太忙

HTTP 500-14 - 应用程序无效

HTTP 500-15 - 不允许请求 global.asa

Error 501 - 未实现

HTTP 502 - 网关错误

遇到此类问题的时候,用户可以根据回显的信息进行故障排查和处理,也欢迎大家在公众号(woyaowifi)留言交流处理方式哦~