Author Archives: blchen

Azure DevOps添加Task新状态

Azure DevOps默认的Task只有4个状态,分别是To Do, In Progress, Done, Removed。很多时候我们会需要一些额外的状态来更好的区分task,比如

  • 添加一个Triage状态,标示Task需要先review在做分配
  • 添加一个Testing状态,标示Task里的功能已经完成,可以测试

Azure DevOps允许用户自由定制workflow,对Task,Bug,Backlog进行扩展,下面是给Task的State增加一个新字段的具体操作

  1. 打开Azure DevOps管理门户,在首页点左下角的Organization settings
  2. image
  3. 点击Board下的Process,在右边找到要修改的模板,点击
  4. image
  5. 找到要修改的work item type,点击
  6. 点击State tab,点+New State添加新状态即可
  7. image

Chrome书签不能同步的解决方法

Chrome书签不能同步,主要原因是同步服务器不能访问了,这时候可以这样解决

  1. 现在Chrome里访问
    chrome://sync-internals/,找出同步服务器地址,如下图所示

    image
  2. 打开Windows命令行窗口,ping下面2个地址chrome.google.com,client4.google.com

    image
  3. 更新c:\Windows\System32\drivers\etc\hosts文件,加入如下
    74.125.204.138 chrome.google.com
                64.233.189.113 clients4.google.com 

重新打开Chrome,书签就会自动开始同步了。

使用阿里云Maven库

在C:\Users\{username}\.m2\下创建一个settings.xml文件,内容如下

<?xml version=”1.0″ encoding=”UTF-8″?>

<settings xmlns=”http://maven.apache.org/SETTINGS/1.0.0″

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd”>

<mirrors>

<!– 阿里云仓库 –>

<mirror>

<id>alimaven</id>

<mirrorOf>central</mirrorOf>

<name>aliyun maven</name>

<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>

</mirror>

</mirrors>

</settings>

美国签证不在新护照上EVUS的正确登记方式

这次出差的时候护照换了新的,但是十年美国签证在旧的护照上,EVUS的规定是护照换了即使EVUS没过期也需要重新登记。记录一下正确的登记方式,帮助有需要的童鞋。

关键点就是在填写旅行文件信息的这个页面的时候,里面有一个问题是您旅行时所使用的护照是否含有您的美国签证,这个问题需要选不是,选了后系统就提示让你输入旧护照的信息,按照系统提示把包含美国签证的旧护照信息提交就可以了。

image

Visual Studio 2017制作离线安装包

Visual Studio 2017开始,不在提供ISO版本,只有一个web installer的exe安装包了,这对于需要在内网安装VS的用户来说很不方便,因为需要自己去制作这个离线安装包了。下面是具体步骤:

  • 下载VS 2017的exe安装文件
  • 确定需要做到离线包里的工作负载(对应英文版的名字是Workload),如果不确定需要装哪些组件,可以运行一下exe安装包,从安装向导的UI里确定一下。完整的workload id列表可以从这个页面查找image

打开命令行窗口,这里我想做的是一个中文的安装包,包含DotNet桌面开发,ASP.NET和DotNet Core这些workload,具体命令如下。这个命令会自动下载所有需要的文件,到本地的c:\vs2017.3,运行完毕后这个文件夹就可以用来做VS的离线安装了。

C:\DelMe>mu_visual_studio_enterprise_2017_version_15.3_x86_x64_11100063.exe --layout C:\vs2017.3 --lang zh-CN --add Microsoft.VisualStudio.Workload.NetWeb Microsoft.VisualStudio.Workload.ManagedDesktop Microsoft.VisualStudio.Workload.NetCoreTools

image

参考文档

  • https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-enterprise https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio

TFS服务器删除搜索组件

升级TFS服务器到TFS 2017以后,发现TFS经常会出现OutOfMemory的错误,排查了一下,罪魁祸首居然是Elastic Search。TFS 2017开始,如果启用代码搜索功能,TFS会在本地装一个Elastic Search来做索引代码。

%IN3Q1[5[`EY9HYAJK]I87Q

这篇博文记录一下在TFS服务器移除搜索服务以及Elastic Search的过程:

  1. 先打开TFS管理控制台,左边选择TFS服务器名字,然后点右边窗口里的删除特性,弹出框里选择Team Foundation搜索服务,点删除

H]251NV2$Q58$5O58%JVQ$G

  1. 删除环境变量SEARCH_ES_INDEX_PATH里定义的文件夹,这会删除所有的Search索引
  2. 删除环境变量SEARCH_ES_INDEX_PATH和ES_HEAP_SIZE
  3. 运行Configure-TFSSearch.ps1 remove,删除Elastic Search

image

Windows Server远程桌面里如何修改密码

如果你楼主一样经常需要远程登陆到windows server去给一些Service账号改密码,一定会发现在远程桌面里,Ctrl-Alt-Del无法调出改密码的窗口,因为这个指定总是被当前的Windows环境捕获了,远程的机器收不到这个命令。其实正确的在Windows Server远程桌面里改密码的姿势是Ctrl-Del-End,具体步骤如下

  1. 远程桌面登陆
  2. 同时按Ctrl-Del-End
  3. 输入当前密码和新密码提交

配置Azure WebApp只能通过https访问

这篇博文记录如何配置Azrue WebApp只允许https访问,非https的请求一律重定向到https。

具体步骤是在web.config里加一个urlrewrite信息,如下所示,需要加在rewrite/rules节点下

<rule name=”Force HTTPS” enabled=”true”>
   <match url=”(.*)” ignoreCase=”false” />
   <conditions>
     <add input=”{HTTPS}” pattern=”off” />
     <add input=”{WARMUP_REQUEST}” pattern=”1″ negate=”true” />
   </conditions>
   <action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” appendQueryString=”true” redirectType=”Permanent” />
</rule>

Azure WebApp使用反向代理

Azure WebApp有个很赞的功能,就是默认的二级域名自带https证书。这里记录一下用Azure WebApp来反代其他应用的步骤,同时也感谢Herb童鞋提供的技术支持

  1. 在wwwroot的上层目录添加一个名为applicationHost.xdt的文件,内容如下

<?xml version=”1.0″?>
<configuration xmlns:xdt=”http://schemas.microsoft.com/XML-Document-Transform”>
<system.webServer>
<proxy xdt:Transform=”InsertIfMissing” enabled=”true” preserveHostHeader=”false” reverseRewriteHostInResponseHeaders=”false” />
<rewrite>
<allowedServerVariables>
<add name=”HTTP_X_ORIGINAL_HOST” xdt:Transform=”Insert” />
<add name=”HTTP_X_UNPROXIED_URL” xdt:Transform=”Insert” />
<add name=”HTTP_X_ORIGINAL_ACCEPT_ENCODING” xdt:Transform=”Insert” />
<add name=”HTTP_ACCEPT_ENCODING” xdt:Transform=”Insert” />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>

  • 更新web.config文件,增加urlwrite规则

<rule name=”Search” stopProcessing=”true”>
<match url=”^Indexes?(.*)” />
<action type=”Rewrite” url=”http://10.1.0.254/indexes/{R:1}” />
<serverVariables>
<set name=”HTTP_X_UNPROXIED_URL” value=”http://10.1.0.254/indexes/{R:1} />
<set name=”HTTP_X_ORIGINAL_ACCEPT_ENCODING” value=”{HTTP_ACCEPT_ENCODING}” />
<set name=”HTTP_X_ORIGINAL_HOST” value=”{HTTP_HOST}” />
<set name=”HTTP_ACCEPT_ENCODING” value=”” />
</serverVariables>
</rule>