笔者在发布项目的时候遇到这样一个问题,第一次发布的时候成功发布,然后再次发布失败.但是这个问题很快就排除了,这里提出来是为了帮助遇到这个问题的小伙伴,以顺利避开坑.之所以会这样是因为我们在设置权限的时候只给给了用户读和写的权限,而没有给删除权限,因此造成无法覆盖文件.

解决办法很简单,我们打开filezilla server,点击小人图标,进入用户设置页,然后点击shared folder进入目录权限配置栏

这里我们把所有的权限都勾选,重复发布失败的问题就解决啦.

下面我们来解决另外一个问题.我们看一下发布到iis服务器上的文件结构,如下图

首先发现的问题是.ApplicationInsight.config,Web.debug.config和Web.Release.config在服务器环境中都是不必要的,但是整个目录复制把这些内容也复制来了.

另外一个问题是.Content,fonts这两个目录首次发布的时候拷贝过来就好了,以后发布不是每次都要拷贝这两个目录,复制太多静态资源也会影响发布效率,甚至有些情况下本机环境和测试服务器环境下Content文件夹的内容是完全不一样的,我们根本不需要复制这个目录.我们如何排除特定的文件和文件夹,只发布必要的内容呢.

这里取决于上图红色框选部分的配置,传输选项有一个FilemMask属性,它接收一个文本格式,用于指定包含/排除特定的文件/文件夹.根据上面的配置,ApplicationInsights.config文件就被排除了.

我们在Jenkins里再执行一次构建,可以看到这次上传到iis目录下的文件结构如下

ApplicationInsight.config文件已经被排除了.

有些时候我们需要排除一类文件,比如说我们要排除所有的jpeg文件,此时的格式是$transferOptions.FileMask="|*.jpeg"其中*匹配任意字符

多个需要排除的项之间用逗号隔开

如刚才所说,我们有时候需要排除整个目录,而不仅仅是特定的文件或者特定类型的文件.比如我们想要排除Cotent文件夹,此时语法是这样的

$transferOptions.FileMask="|Content/"content后面跟一个斜杠,用于指示它是要排除的目录,而不是文件

我们把配置文件中关于文件过滤的一行改为如下

我们清空iis目录下内容,然后再在Jenkins里触发一次构建,构建成功后,我们打开iis目录,看到如下文件结构

可以看到ApplicationInsight.config文件和Content目录都没有发布.

大伙可以参考以上内容自行排除Web.Debug.config和Web.Release.Config

Jenkins结合.net平台综合之权限修正和文件排除的更多相关文章

  1. Jenkins结合.net平台综合之监听git仓库并自动摘取最新代码编译

    前面章节我们讲解了Jenkins结合.net平台工具以及一些第三方工具实现项目自动还原,自动编译,自动测试和自动发布.然而实现自动化还有一个关键的步骤就是监听源码仓库变化然后从仓库拉取最新代码,然后再 ...

  2. Jenkins结合.net平台综合之完整示例项目

    前面每一个部分我们都是介绍的单个功能,这里介绍一个完整项目,本文中所用到的命令都放在了github示例代码仓库中 https://github.com/mrtylerzhou/netdevops 命令 ...

  3. Jenkins结合.net平台综合应用之通过SSH方式拉取代码

    上一节我们讲解了如何Jenkins如何通过轮训来监听git仓库变化然后拉取最新代码,上一节中我们使用的是https方式,然后正式环境中企业更倾向使用ssh方式.这里我们讲解一下如何通在Jenkins中 ...

  4. Jenkins结合.net平台综合应用之使用FileZilla搭建ftp服务器

    上一节我们讲解了如何编译web项目,web项生成以后我们是手动复制到iis目录下的,这显然不符合devops初衷,这里我们讲解如何利用ftp协议把文件传到远程服务器的iis目录下. 这一讲分两部分一部 ...

  5. 【持续集成】使用Jenkins实现多平台并行集成

    使用Jenkins实现多平台并行集成 二月 15, 2012 暂无评论 我们的后端C应用都是支持跨平台的,至少目前在Linux和Solaris上运行是没有问题的,这样一来我们在配置持续集成环境时就要考 ...

  6. Jenkins 开启用户注册机制及用户权限设置

    Jenkins 开启用户注册机制及用户权限设置   by:授客 QQ:1033553122 步骤 1.  系统管理-Configure Global Security 2.  设置

  7. JENKINS安装及新建用户,权限配置

    JENKINS安装及新建用户,权限配置 1. 下载安装 jenkins 官网地址https://jenkins.io/index.html 下载地址https://jenkins.io/downloa ...

  8. Jenkins拾遗--第三篇(用户权限管理)

    采访过很多实用Jenkins的同学,发现Jenkins的安全是一个很薄弱的地方.很多公司用作生产部署的Jenkins安全管理都不是很规范,就更别提测试用的Jenkins了. 其实Jenkins是一个很 ...

  9. 开发指南专题十一:JEECG微云高速开发平台--基础用户权限

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26580037     开发指南专题 ...

随机推荐

  1. TimesTen数据库的备份和恢复

    建立不支持增量备份的全备份 做一个全备份,fileFull为不支持增量的全备份 $ ttbackup -type fileFull -dir /tmp/backupdir sampledb_1122( ...

  2. 源码安装python +NGINX 的坎坷路 +uwsgi安装 部署django 的CRM项目

    一.Nginx安装(基于ubuntu17.10 版本) 首先我们是基于源码安装,主要有如下步骤 1.安装依赖包 1.安装gcc g++的依赖库 sudo apt-get install build-e ...

  3. 查看 FormData 中已存在的值

    var formData = new FormData(); formData.append('name','bob'); formData.append('sex','male'); formDat ...

  4. 在C++中,setw(int n)

    setw(int n)用来控制输出间隔例如:cout<<'s'<<setw(8)<<'a'<<endl;则在屏幕显示s        a //s与a之间 ...

  5. 企业IT管理员IE11升级指南【9】—— IE10与IE11的功能对比

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  6. C++ : cin.get()函数和cin函数的使用

    笔者由于自己忘记了cin函数怎么用,所以这里趁自己复习C++的空子正好可以做做记录. 1.cin>>          用法1:最基本,也是最常用的用法,输入一个数字: #include ...

  7. HTTP 400 错误 - 请求无效 (Bad request)

    在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因:1)前端提交数据的字段名称或者是字段类型和 ...

  8. C/C++数据在内存中的存储方式

    目录 1 内存地址 2 内存空间   在学习C/C++编程语言时,免不了和内存打交道,在计算机中,我们存储有电影,文档,音乐等数据,这些数据在内存中是以什么形式存储的呢?下面做一下简单介绍. 本文是学 ...

  9. Ubuntu12.04中的虚拟机安装Ubuntu16.04,并实现远程控制16.04

    目录 1.设置网络连接 1.1 VMware虚拟机网络地址设置 1.2 设置虚拟机内Ubuntu16.04的网络模式 未开机状态下 开机状态下 1.3 查看虚拟机中Ubuntu16.04的IP 2.进 ...

  10. 必须知道的Java八大排序算法

    冒泡排序.简单选择.直接插入.快速排序.堆排序.希尔排序.归并排序.基数排序. 将其按排序方式分类如下图所示: 1.冒泡排序: 基本思想——在要排序的一组数中,对当前还未排好序的范围内的全部数据,自上 ...