在 IIS 使用 web.config 配置域名端口跳转

作者:V君 发布于:2020-2-9 0:21 Sunday 分类:小服杂记

— TL;DR —

按需将以下配置节点添加到 web.config ,修改目标域名,完成。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
 <security>
   <requestFiltering>
   <fileExtensions allowUnlisted="true">
    <remove fileExtension=".cs" />
   </fileExtensions>
  </requestFiltering>
 </security>
 <rewrite>
  <rules>
    <rule name="RedirectGogs" stopProcessing="true" enabled="true">
      <match url="^gogs/(.*$)" />
      <action type="Redirect" redirectType="Temporary" url="https://gogs.topcl.net:8443/{R:1}"/>
    </rule>

    <rule name="RedirectExaWww" stopProcessing="true" enabled="true">
      <match url="^(?![\._].*$).*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="www\.example\.com" />
      </conditions>
      <action type="Redirect" redirectType="Temporary" url="https://blog.example.com:8443/{R:0}"/>
    </rule>
    <rule name="RedirectExa" stopProcessing="true" enabled="true">
      <match url="^(?![\._].*$).*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="example\.com" />
      </conditions>
      <action type="Redirect" redirectType="Temporary" url="https://blog.example.com:8443/{R:0}"/>
    </rule>

    <rule name="DefultRedirectBlog" stopProcessing="true" enabled="true">
      <match url="^(?![\._].*$).*" />
      <action type="Redirect" redirectType="Temporary" url="https://blog.topcl.net:8443/{R:0}"/>
    </rule>
  </rules>
 </rewrite>
</system.webServer>
</configuration>

— 听我扯扯 —

咋一看,不就是 rewrite + redirect (307) 不就好? 其实没有那么简单,比如源代码连接里以 .cs 后缀的代码文件 ()就在跳转的时候被 IIS 拦下来 404 了,因此还得额外加白。你可能会担心安全风险,但我这个空间仅仅用来跳转,根目录下只有这个 web.config 文件。

二月份的文章也只能这么水了,因为疫情只能把自己关在家

— 更新 —

将正则表达式改为 ^(?![\._].*$).* 可以忽略以指定字符开头的路径,方便申请 Let's 证书和临时放些文件,使配置更灵活

— 更新Ⅱ —

使用 conditions 实现别名支持,使空间变跳转 hub,将其利用价值榨干

标签: SSL证书 HTTPS ASP.NET IIS

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

看来电信个人宽带的443端口也没了

作者:V君 发布于:2020-1-26 4:53 Sunday 分类:小服杂记

由于最近几天回家过年,很晚才发现博客打不开,经过各种排查发现似乎是443端口被封了。只好用外部空间来搞了个重定向到8443端口,使博客暂时以一个不太好看的网址重见天日。
之前已发布的链接依旧有效。

这就是一月份的文章?

标签: 端口封杀

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

开始接触 STM32 —— Keil μVision 和 Visual Studio 相比太难用啦!

作者:V君 发布于:2019-12-31 10:59 Tuesday 分类:折腾手记

最近开始摸STM32,用 Keil μVision 来编写代码和调试。单片机型号是 F103 用 ST-Link/v2 以 SWD 的方式下载和调试。尽管 Keil 在占据的市场份额不小,但对于我这个被 VS 宠坏了的家伙来说,太难用啦!先列举些槽点,然后再看看有没有代替方案,如果能用 VS 来搞 STM32 开发就好咯……

吐槽:文档页签不能拖动
吐槽:编译、下载、启动调试,似乎不能一气呵成,得分开操作
  但愿是我不知道怎么配置一键,难道大伙们都能忍?
吐槽:智能感知……只能说是聊胜于无吧,尽管默认绑了 F12——
  可以转到定义,但在找到多个重复定义时,你蹦出一个符号窗格给我……
吐槽:项目 wide 搜索,貌似没有像VS那样列出匹配,只能上一个、下一个来导航
  但愿又是默认不启用的功能,只是我不没调出来……

代替方案?起初想到用 VsCode 来编辑代码,然后再回到 Keil 调试,考虑到 C 语言过于依赖环境,多一个少一个符号定义都会发生很大变化,估计 VsCode 的智能感知估计也不会好到哪里去吧……用各种关键字喂咕狗,找到一个叫做 VisualGDB 的扩展,主页上提到可以用来搞 STM32,但目前还没有试试看能不能用……(咕咕咕)后话:剁手买了正版,很香!

月底了,不刷存在感会觉得很方,必须凑合着发点什么出来

标签: 软件开发 嵌入式

评论(2) 引用(0) 浏览(911)

Xamarin Android 新手历险记之 AccessibilityService

作者:V君 发布于:2019-11-30 19:49 Saturday 分类:折腾手记

最近开始折腾 Android 的原生功能,想获取显示在屏幕上的界面元素。说到 Android 还想用我大 C♯ 去写,当然就是 Xamarin 啦!和往常一样,还是从 TL;DR 开始,然后再展开详细。

- TL;DR -
1. 在项目中新增一个类,本例命名为 MyAccessibilityService
2. 使其继承于 AccessibilityService (Android.AccessibilityServices)
3. 追加必要的 Attribute ,如 Service、IntentFilter、MetaData
4. 重写 OnServiceConnected 方法增加 SetServiceInfo 调用
5. 重写 OnAccessibilityEvent 根据 ServiceInfo 做对应动作,达到目的

- 展开 -
1. 略 (o ‵-′)ノ”(ノ﹏<。)
2. 略 (o ‵-′)ノ”(ノ﹏<。)
3. 这里可以稍稍展开
 ✸ Service 特性主要是 Label 和 Permission
  > 用 Label 来指定服务的显示名称
  > 用 Permission 指定必须的权限 BindAccessibilityService
 ✸ IntentFilter 喂进去一个 "android.accessibilityservice.AccessibilityService"
 ✸ MetaData 喂进去 "android.accessibilityservice" 和 Resource = XML 资源路径
  > XML 路径一般是 "@xml/accessibility_service_config",在对应地方写好配置文件即可
  > 为了能访问界面元素,确保在配置文件中启用 android:canRetrieveWindowContent
  ⚠ 注意 MetaData 第一个参数写错不会有检查,只会让服务不按XML配置文件工作
4. 这里主要是创建一个 AccessibilityServiceInfo 实例,然后喂给 SetServiceInfo 方法
  > Flags 属性确保有 RetrieveInteractiveWindows 位
  > EventTypes 用来给接下来的地方做事件筛选,比如用 WindowsChanged
5. 到这里就可以开始搞事情啦
  > 使用当前对象的 RootInActiveWindow 属性获取界面元素的树状结构根节点

- 再稍稍补充一下 -
如果只有 Service 而没有主界面,那就得手动跑到系统设置的辅助功能去启动服务。
有的国产Android手机系统界面被魔改得连辅助功能入口都被砍掉,这太尴尬。
我们可以在主界面做个按钮来导航到辅助功能设置:
1. 使用 Android.Provider.Settings.ActionAccessibilitySettings 实例化 Intent
2. 将其喂给 StartActivity 就可以实现捷径了

- 感受 -
这次能分担给大家的东西并不多。
我不会说因为 MetaData 第一个参数写错,然而没有报错,也获取不到界面元素,让我花了很多时间才找到问题所在。这个细节上咕狗做得很不厚道呀……

说好的每月一篇文章,这次有点踩线呀,虽然创建时间是19点,但发布时已经超过零点了,咕咕咕

标签: 软件开发 C# Android

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

Auto Scroll Utility for Windows 10 来自ThinkPad的桌面实用小工具

作者:V君 发布于:2019-10-26 16:03 Saturday 分类:应用软件

今儿咱来分享一个实用小工具,尽管不是解决问题也可以有TL;DR,但先听我扯扯吧

先扯
厂里配的工作机是ThinkPad笔记本电脑,拿到手之后当然首先是装系统和打驱动。
比起使用助手之类的玩意儿去弄脏系统,我更倾向于自己从官网下载。
去官网对应型号支持页面去按需选择下载。考虑到笔记本的快捷键功能,我顺便也把实用工具全都装上了。
在使用的过程中发现:在部分被拖到屏幕外的窗口,用鼠标在窗口上往屏幕外的方向继续移动,
这时候窗口会以反方向往屏幕中移回来,具体看这个动图。
点击查看原图
起初以为这是Windows10的新特性,想在自己的电脑也启用它,用尽各种关键字把咕狗翻个底朝天都没找到…
其他同事同样用Windows10也没有这个特性。我就猜是不是OEM实用工具了,翻找进程发现了它。
扯完了,让我们来获取它吧!即使你的电脑不是ThinkPad,通过一些手动操作还是可以使用的。

TL;DR
1. 咕狗“auto scroll utility”找到联想官网下载页,我这儿看到的文件名是 gfvv33ww.exe
2. 下载执行安装,默认会将文件释放到 C:\DRIVERS\AutoScroll 安装向导完成之后无法再使用图形界面继续
3. 将 _i386 文件夹中的 virtscrl.exe 和 virtscrl.dll 弄出来,这时候安装程序生成的文件夹可以删掉了
   p.s. 已经确认即使在64位系统下 _i386 的版本也能正常工作,文件比 _amd64 更小,何乐不为
4. 之后就是想办法用 system 身份运行 virtscrl.exe 了,一旦它跑起来就能享受推窗口的体验

对TL;DR的补充(新手指引)
如何让 exe 以 system 身份运行?
方法有很多,但除了用 Sysinternals 出品的 PsExec 之外其他方法都比较麻烦
用法:PsExec.exe -i -s -d cmd /c start /min C:\path\to\virtscrl.exe
首次使用会弹出许可协议,需要接受才能使用
将它设为开机启动,然后享受吧!

继续补充:这个小工具在远程桌面下无法正常工作

标签: 新手指引 小工具

评论(2) 引用(0) 浏览(1470)

Powered by emlog 去你妹的备案 sitemap