C#使用Windows Service 启动和关闭IISExpress

(未完成)
最近的项目使用到IISExpress,写了一个命令行,双击启动,但是无奈,启动之后会留一个命令行窗口,稍微不小心就关掉了,而且云服务器运行多个IISExpress 窗口很多实在烦人,写一个小程序把IISExpress 使用windows service管理起来

主要过程

1、使用C# 创建windows 服务
2、使用命令行交互启动 IISExpress
3、处理服务关闭事件
4、处理IISExpress异常退出
5、写配置文件,按照配置文件启动IISExpress
6、写日志,记录执行情况

0.环境配置

1、下载IISExpress 安装
https://www.microsoft.com/zh-cn/download/details.aspx?id=34679
根据你的系统选择版本,一般是64位版本

2、编写配置脚本
使用IISExpress默认的脚本进行修改,把下面的文件复制出来,放到项目目录中作为模版

C:\Program Files\IIS Express\config\templates\PersonalWebServer\applicationhost.config 

设置应用程序池
找到 <applicationPools> 节,在里面增加

<add name="应用程序池名称" enable32BitAppOnWin64="true" managedRuntimeVersion="v4.0"  CLRConfigFile="%IIS_BIN%\config\templates\PersonalWebServer\aspnet.config" managedPipelineMode="Integrated" autoStart="true"/>

设置网站
找到 <sites> 节,修改里面的配置

<sites>
    <site name="WebSite1" id="1" serverAutoStart="true">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation=":8080:localhost" />
        </bindings>
    </site>
    <siteDefaults>
        <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
        <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
    </siteDefaults>
    <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
    <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

关于applicationHost.config 文件的详细介绍:
http://www.cnblogs.com/IPrograming/archive/2013/05/26/Configuration_IIS_Express.html

其中%IIS_SITES_HOME% 是环境变量,可以另起一个,比如%MY_WEBSITE_HOME%,然后在系统环境变量中设置项目所在目录

这里写图片描述

(写在系统变量里或者Administrator用户变量里都可以)

启动IISExpress
打开命令行,执行命令启动IISExpress

"C:\Program Files\IIS Express\IISExpress" /config:%MY_WEBSITE_HOME%\applicationhost.config

注意一下,由于IISExpress的默认安装路径有空格,需要用引号括起来。
使用浏览器访问一下配置的端口,按照上面的配置是8080,正常的话能看到自己的页面了

1、使用VS创建window 服务

参考文章:
http://blog.csdn.net/yysyangyangyangshan/article/details/10515035
http://www.cnblogs.com/bluestorm/p/3510398.html

2、加入命令行脚本

参考文章:
http://blog.csdn.net/u013151336/article/details/51301779
http://www.cnblogs.com/babycool/p/3570648.html

执行的命令就是上面提到的启动IIS的命令

3、处理服务关闭事件

服务停止的时候同时关闭IISExpress
在windows服务的OnStop()事件中,给命令行发送按键q

4、处理IISExpress结束事件

注册命令行对象 OnExited的事件,当IISExpress关闭后,结束windows服务

5、写配置文件

写一个配置文件,可以更改IISExpress目录环境变量的名称

6、写日志记录执行情况

使用文本文件记录服务的启动、关闭、命令行输出的内容。写日志可以用 log4net
http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值