互联网接入方式升级为光纤,依旧保持公网IP

作者:V君 发布于:2017-5-1 22:12 Monday 分类:小服杂记

TL;DR: 缠住安装师傅要公网IP。

 

听我扯扯:

之前由于担心换光纤会把公网IP丢掉,就一直使用铜线接入互联网。

前段时间接到电信客服的电话,不由分说约了个时间让安装师傅上门升级光纤。。。

当时就捉急了,难道要租服务器或者用受限的转发方式?

赶紧咕狗看看,查到可以通过吼客服的方式弄到公网IP,才放心下来。

 

到了约定时间,安装师傅上门了。

给了个光纤猫,扯了根光纤进房,输入一串东西注册光猫终端之后,

用 telecomadmin 进去把设置改成能用路由器的方式。路由器的上网账号不变。


和预期的一样,IP被分配到100开头,由于之前咕狗过知道这不是公网IP,

就地访问 ip138 ,指出与路由器IP不同给安装师傅看,对此提出质疑。


做好了大扯三十六回合的准备,谁知道却被爽快地回应了,还以为会装不懂敷衍了事。

(扯远点:联通的安装师傅态度就很差,声称不知道公网IP,断开重新拨号试试看之类的)

得到承诺下个工作日完成调整并留下联系方式。


给电信基层工作人员的办事效率态度点个赞,

上门的时间是周六白天,下个工作日是周一,要隔两天,

然而在周日下午得到了公网IP,期间还多次主动短信确认状况。


总的来说其实也没有必要闹到吼客服的程度,只需要把安装师傅缠住就可以了。

评论(0) 引用(0) 浏览(1115)

JavaScript 字符串 半角转全角

作者:V君 发布于:2017-4-13 1:24 Thursday 分类:折腾手记

var arrProcessed = [];

var code;

for (var i = 0; i < t.length; i++) {

    code = t.charCodeAt(i);

    if (code > 32 && code < 127) code += 0xFEE0;

    arrProcessed.push(code);

}

t = String.fromCharCode.apply(window, arrProcessed);


参考资料:爆栈Unicode Map爆栈爆栈


用来给竖排排版被打横的字符摆正,主要精髓是原生脚本。


扯扯:

比起被转载的满天飞的版本,还是自己重新码过,整洁度和性能都不在一个级别上。

真能忍受每次都调用 charCodeAt ,定义一个局部变量会死吗?

还有看到每次循环都作字符串拼接也犯了强迫症,丢进数组然后再调用原生功能一次转换。

 

标签: 软件开发 javascript Web技术

评论(0) 引用(0) 浏览(1282)

巧用「嵌入资源」和「动态加载程序集」解决依赖库版本冲突

作者:V君 发布于:2017-4-1 14:39 Saturday 分类:填坑经验

太短(?)就不写摘要了 (´∀((☆ミつ


一个老项目,使用了 .net 3.5,框架体系中已经引用了较早期的 Newtonsoft JSON 库

它的版本也是3.5现在这个库已的版本已经到10.0了

和旧版比起来有一些命名差异以及修复了一些 bug,需要的功能正好在被修复的 bug 里


我们都知道如果一个项目里不同的程序集之间引用不同版本但名称相同的程序集会出现冲突


尽管可以重定向程序集版本,但是那时还没啃透

不知道除了能代替版本还能指定另一个文件,这种方式也是可以解决问题的(MSDN)这是后话


回到我们这次的做法

新版本的 DLL 没跑进 bin试着手动复制进去(当然已经改过文件名再引用),发现启动不了

这是当然的,WEB 项目会无脑的把bin里的程序集全部都加载起来,发现同程序集名不同版本就挂了


于是就用了 Aio1ef 那招

 -- 引用时去掉本地复制,在首次使用前于静态构造加挂程序集解析事件,载入嵌入程序集


于是就让两个不同版本的 Newtonsoft JSON 共存了

当然目前只是在这个项目里的不同程序集分别引用


要在同一个程序集里引用两个名称相同,版本却不同的程序集

在没有用到 Attribute 的前提还是可以勉强反射一下实现写个类 Proxy 也是挺有意思的

如果有用到 Attribute 那就洗洗睡吧, 那估计要用 IL 显式指定程序集名称了 乂目


标签: 软件开发 C#

评论(0) 引用(0) 浏览(1696)

这不是BUG,是特性!——记一次 .NET C# 有/无符号字节数组非预期拆箱

作者:V君 发布于:2017-3-23 18:43 Thursday 分类:挖坑经验

TL;DR

检查可能是有符号字节数组的装箱对象要用 that.GetType() == typeof(byte[])

而不是 that is byte[] ,这和 CLR 实现机制有关. 似乎运行时不区分 byte[] 和 sbyte[]

装到 object 里的字节数组不管有无符号都能分别被有无符号数组拆箱出来...


扯扯:

处理一系列温度探头数据. 为了减小数据占用, 在检查了数值范围之后

选用了 sbyte 作为存储数据类型, 然而在自动可视化处理时被当做了无符号数组处理.

无符号数组一般表示二进制数据, 于是把温度以十六进制显示到界面上了. 好尴尬.

咕狗一把才发现原来还有这回事.

好吧 我就说一直以强类型自居的我大井怎么会有这么弱智的问题 _(:з」∠)_

标签: 软件开发 C# bug

评论(0) 引用(0) 浏览(1563)

解决一蛋痛的WCF-REST配置问题:未找到注册基址方案

作者:V君 发布于:2017-3-14 20:12 Tuesday 分类:挖坑经验

状况:

访问时出现以下错误

找不到具有绑定 WebHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是[]

注意, 注册的基址方案是空的, 和遍地都是的 “注册的基址方案是[http]”不同

 

TL;DR:

在 web.config 配置基址前缀就能解决该问题.

<serviceHostingEnvironment>

    <baseAddressPrefixFilters>

        <add prefix="http://localhost" />

    </baseAddressPrefixFilters>

</serviceHostingEnvironment>

扯扯:

扯你妹不想扯了, 花了好大劲都解决不了. 

结果 ServerAdmin 告诉咱们想起以前的项目遇到类似的情况时,负责人的做法...


so.解决不了配置问题的码农不是好运维? ( ゚∀。)

 

标签: 软件开发 C# ASP.NET MVC WCF REST 运行时错误

评论(0) 引用(0) 浏览(1347)

Powered by emlog 去你妹的备案 sitemap