我以前谈到过,WebMatrix(IIS Express)搭建.net 开源CMS系统方法。使用了WebMatrix 2.0+ IIS Express 8.0建立自己的网站。
现在要把它变成虚拟主机,需要改进的部分有:
1、多个网站,以及1个网站的多个iisexpress访问(伪IIS服务器集群 )。
2、iisexpress 用管理员方式自动启动。
1、修改默认配置即可,也可以直接 WebMatrix
默认配置文件位于:[我的文档]\IISExpress\config\applicationhost.config。记事本打开找到<sites></sites >:
手工添加
<site name="程序站点名" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="程序路径" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8085:192.168.1.1" />
</bindings>
</site> 要注意的
是,每个网站的名字和端口要保证完全不一样,可以用不同的网站指向同一个目录来实现伪集群。
如法炮制,完全可以做到 运行9个 iis express进程,分别侦听在8080~8089端口,这样能满足实际服务器集群。
2、 用管理员方式自动启动
如果要做虚拟主机需要开机启动,iisexpress没有服务启动的方式,解决方法很多,我使用C#制作windows服务的方式,
新建一个C#windows服务项目,写入代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
namespace WindowsServiceIISexpress
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
System.Diagnostics.Process Proc;
protected override void OnStart(string[] args)
{
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName = @"C:\Program Files\IIS Express\iisexpress.exe";
//设置隐藏窗口
Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//设置外部程序的启动参数(命令行参数)为test.txt
Info.Arguments = "/site:JumboTCMS.luozhuang /systray:true ";
//声明一个程序类
try
{
//
//启动外部程序
//
Proc = System.Diagnostics.Process.Start(Info);
}
catch (System.ComponentModel.Win32Exception exc)
{
Console.WriteLine("系统找不到指定的程序文件。\r{0} ", exc);
return;
}
}
protected override void OnStop()
{
if (Proc == null)
{
return;
}
Proc.Close();
}
}
}
然后把这个制作成服务,人员选择系统管理员,一般来说是Administrator,要注意的是,尽量保证Administrator账户启用和设置密码,不要空密码Administrator账户启动服务。
技术要点:
1、C#创建windows服务
2、windows服务的登录身份改为系统管理员,即Administrator
3、Administrator账户启用( 我印象中win7默认停用的)
这些技术希望大家baidu 查询怎么完成,这里不再详细叙述。
大家还要注意的一点就是,上面程序默认IIS express 默认配置目录是 Administrator\[我的文档]\IISExpress\config\applicationhost.config,如果你需要修改配置,请参考IISexpress.exe 命令行
命令行介绍
iisexpress [/config:config-file] [/site:site-name] [/systray:boolean]
如:
F:/Projects/IIS Express/iisexpress.exe /config:F:/Projects/luozhuang/applicationhost.config /systray:true /site:luozhuang.web
然后对上面的程序进行修改。
本人测试系统平台:
windows server 2012
iisexpress 8.0
Visual studio 2012 express
Sql server 2008R2 express
测试web应用:
JumboTCMS
discuz!NT
通过。