编程语言
首页 > 编程语言> > (c#)Nancy脱离iis的web应用

(c#)Nancy脱离iis的web应用

作者:互联网

ASP.NET是个牛逼哄哄的框架,当然可以向外提供HTTP接口功能(这里我没有用WebAPI,是因为ASP.NET把WebAPI这么恰当的一 个名词给占用了,所以这里我用HTTP接口代之),但如果你像我一样喜欢简单,不喜欢IIS的话,Nancy自宿主是一个挺不错的选择。

官方:http://nancyfx.org/

 

下面说说如何用Nancy提供一个自宿主的HTTP接口。

一、新建一个控制台应用程序

注意是控制台应用程序,不是空的WebForm或空的MVC项目。

二、用NuGet安装所需包

用NuGet安装Nancy和Nancy.Hosting.Self两个程序包。

三、编写宿主启动代码

打开Program.cs,在Main方法里输入以下代码:

var url = new Url("http://localhost:9955");
    var hostConfig = new HostConfiguration();
    hostConfig.UrlReservations = new UrlReservations { CreateAutomatically = true };
    using (var host = new NancyHost(hostConfig, url))
    {
        host.Start();

        Console.WriteLine("Your application is running on " + url);
        Console.WriteLine("Press any [Enter] to close the host.");
        Console.ReadLine();
    }

四、编写接口处理模块

新建IndexModule.cs类文件,让IndexModule继承NancyModule,

在IndexModule的构造函数里编写路由规则及HTTP处理,IndexModule如下:

public class IndexModule:NancyModule
    {
        public IndexModule()
        {
            Get["/"] =_=> "Hello World";
            
            Get["/GetPerson/{id:int}"] = parameters =>
            {
                Person p = new Person();
                p.ID = parameters.ID;
                p.Name = "loogn";
                return Response.AsJson(p);
            };
        }
    }

    public class Person
    {
        public int ID { get; set; }
        public string Name { get;
}

五、运行测试

Ctrl+F5启动服务

 

打开浏览器 输入:http://localhost:9955/

载入:http://localhost:9955/getperson/26

来自<https://my.oschina.net/lichaoqiang/blog/542763>

标签:web,HTTP,iis,http,Nancy,IndexModule,new,public
来源: https://www.cnblogs.com/qiulidong/p/11736845.html