Asp.Net自定义扩展名,如何在Jexus运行


起因

  最近不是很忙,在想如何现有的项目迁移到Linux平台上,首先就得自定义扩展名为do,能正常运行喽!

新建一个Web空项目

  
  分别创建了MyHandler.cs,Index.aspx,Hanlder.ashx,这几个测试文件

MyHandler.cs(主要测试这个)文件内容

using System;
using System.Web;

namespace ExtesionName
{
    public class MyHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string content = string.Format("Hello Mono,MyHandler {0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            context.Response.Write(content);
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }
}

Index.aspx 文件内容

<p style="color: red; text-align: center">Hello Mono,MyHandler <%=DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") %></p>

Handler.ashx 文件内容

using System.Web;

namespace ExtesionName
{
    public class Handler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

修改web.config 

 在system.web节点下,添加以下内容
<httpHandlers>
    <add verb="*" path="*.do" validate="false" type="ExtesionName.MyHandler,ExtesionName"/>
</httpHandlers>
 varb指的是请求方式,如POST或GET等,*号代表所有;
 path指的是请求的文件名称,*号匹配所有,这里限定后缀为do;
 type有,号分割为两部分,第一部分类的全名称(包括命名空间),第二部分是生成在bin文件夹下的程序集名称

Linux环境(主要通过Win10的bash)

 1. 下载jexus  独立版Jexus
 2. 将jexus压缩文件,移动某个盘符下; 这里为F:\ProjectCodes\ccpp
 3. 在命令行,输入bash,进入Win10下的Linux环境中.如果不可以执行该命令,这可以参考Win10启用bash
 4. 在bash中,如何查找盘符呢?
    
 5. 解压jexus
    tar -zxvf  jexus-5.8.1-x64.tar.gz

 6. 修改默认配置和指定项目所在位置

        

  7.运行看看效果
    sudo ./jws start

        

秋风 2017-02-20