Nancy 寄宿IIS

一:简介

  • Nancy是一个轻量级的独立的框架,下面是官网的一些介绍:
  • Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。
  • Nancy 设计用于处理 DELETEGETHEADOPTIONSPOSTPUT 和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。
  • Nancy和Asp.net MVC原理相似,但有自己的一套路由机制,在使用上更加易用,可以用Nancy快速开发一些网站。
  • Nancy并不依赖任何现有的框架,所以他可以运行在任何平台上面。

二:创建空白的项目

三:引用nancy类库文件 Nancy.dll  和 Nancy.Hosting.AspNet.dall文件

    public class HomeModule : NancyModule
    {
        public HomeModule()
        {
            Get["/home/get"] = parameters => "Hello World";
        }
    }

    public class HomeModule : NancyModule
    {
        public HomeModule():base("/home")
        {
            Get["/home/get"] = parameters => "Hello World";
        }
    }

四、将Nancy项目发布到IIS中

    public class HomeModule : NancyModule
    {
        public HomeModule() : base("/home")
        {
            //同步
            Get["/get/{name}"] = parameters =>
            {
                return parameters.Name;
            };

            Post["/GetMore"] = p =>
            {
                var name = Request.Form["name"];
                var age = Request.Form["age"];
                var address = Request.Form["address"];
                return $"姓名{name},年龄{age},地址{address}";
            };

            //异步
            Get["/GetOne", true] = async (p, k) =>
            {
                return "这是一个异步的get请求";
            };

            Post["/Add", true] = async (p, k) =>
            {
                var name = Request.Form["name"];
                var age = Request.Form["age"];
                var address = Request.Form["address"];
                var phone = Request.Form["phone"];
                return $"姓名{name},年龄{age},地址{address},手机{phone}";
            };
        }
    }

五、新建项目请求

Get请求
      HttpClient client = new HttpClient();
      var result = await client.GetAsync("http://localhost:166/home/Getone");
      var p = result.Content.ReadAsStringAsync().Result;
Post请求

             HttpContent content = new StringContent("name=xiaoming&age=20&address=beijingchaoyang&phone=15212341234");
            //如果不正确会导致Request.From 获取不到数据
            content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
            HttpClient client = new HttpClient();
            var result = await client.PostAsync("http://localhost:166/home/Add", content);
            var p = result.Content.ReadAsStringAsync().Result;
时间: 2024-10-12 12:48:34

Nancy 寄宿IIS的相关文章

WCF服务寄宿IIS与Windows服务

WCF是Windows平台下程序间通讯的应用程序框架.整合和 .net Remoting,WebService,Socket的机制,是用来开发windows平台上分布式开发的最佳选择.wcf程序的运行需要一个宿主ServiceHost,我们可以选用控制台应用程序,也可以选择IIS寄宿,还可以选择windows 服务寄宿.相较与控制台程序,IIS,和Windows服务比较稳定.而且大家不会时不时的去重启下IIS下的网站,或者windows服务. 在IIS下寄宿Wcf 我们新建一个类库项目 在项目下

微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务

WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便.高效提供服务调用.本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解. 1. WCF服务的IIS服务寄宿 我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿.这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用. 创建这

WCF 非http寄宿IIS

一:生成一个简单的wcf项目,以及IIS服务配置,发布项目 ,步骤 二:Web.config配置 <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> &

项目中遇到的某些问题及解决办法(一)

简介 该博文记录了一些平时在工作中遇到的问题及解决办法,某些问题有解决办法,某些问题暂时没有解决办法,如果有大神知道的,请多多指点. 如果某些问题有更好的解决办法,也请指教. 正文 1.在一个方法中用泛型操作两个不同的类型(Type). 难点:需要实现一个方法,进入参数一个泛型,返回信息一个泛型.但是一个方法中泛型只支持一种类型. 解决办法:将进入和返回放在一个类型中,用特性将进入参数和返回参数区分开. 2.微信三方登录,需要在PC桌面应用端+API服务实现. 难点:微信官网只提供了网页三方登录

创建一个简单的WCF程序

WCF的服务不能孤立地存在,需要寄宿于一个运行着的进程中,我们把承载WCF服务的进程称为宿主,为服务指定宿主的过程称为服务寄宿(Service Hosting).在我们的计算服务应用中,采用了两种服务寄宿方式:通过自我寄宿(Self-Hosting)的方式创建一个控制台应用作为服务的宿主(寄宿进程为Hosting.exe):通过IIS寄宿方式将服务寄宿于IIS中(寄宿进程为IIS的工作进行W3wp.exe).客户端通过另一个控制台应用模拟(进程为Client.exe).接下来,我们就一步一步来构

asp.net webapi 自托管插件式服务

webapi问世已久,稀里糊涂的人哪它都当mvc来使,毕竟已mvc使用级别的经验就可以应对webapi. webapi和mvc在asp.net5时代合体了,这告诉我们,其实 它俩还是有区别的,要不现在也不会取两个名字,但是由于本人归纳总结能力较差,各种不同也无法一一列出了. 在webapi中 HelpPage是个突出而又实用的东西,它尼玛会把我们code中的注释生成xml,然后以web页面的方式把接口文档展示出来,这尼玛无形就下岗一批文案了,以社会责任感角度来讲,ms的这个HelpPage挺不地

创建WCF服务寄宿到IIS

一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术. 由 .NET Framework 3.0 开始引入. WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息. WCF合并了Web

Windows 2008下在IIS中寄宿WCF MSMQ的方法

由于工作需要,最近几天在研究Windows 2008下如何在IIS中寄宿WCF MSMQ,中间遇到不少问题,现将操作方法整理一下,方便其他朋友参考. 一.编写服务端代码 在本例中,添加WCF服务MyGreeting.svc,服务端代码如下: 1.服务契约 1 using System.ServiceModel; 2 3 namespace IisMsmqServer 4 { 5 [ServiceContract] 6 public interface IMyGreeting 7 { 8 [Ope

WCF寄宿与IIS里时遇到的问题

[问题总结]WCF寄宿与IIS里时遇到的问题 最近在公司做了一个小的视频处理网站,由于视频处理,网站在不同的服务器上,所以处理视频的时候得在网站服务器上通过wcf请求视频处理服务器处理视频,并将结果返回.我在写好这个wcf服务后寄宿到IIS里时遇到了不少的问题,下面是问题的描述,以及解决的方法. 问题1: 由于我这里的wcf服务是采用“WSHttpBinding”的方式,即安全绑定模式,客户端在引用这个服务后所生成的终结点配置(endpoint )就变成了 <endpoint address=&qu