日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nancy 寄宿OWin

發(fā)布時間:2024/4/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nancy 寄宿OWin 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Nancy 寄宿OWin 原文:Nancy 寄宿OWin

?

一:創(chuàng)建一個空項(xiàng)目

?

二:安裝模板

Install-Package Nancy Install-Package Nancy.Owin Install-Package Microsoft.Owin install-package Nancy.ViewEngines.Razor

?

三:建好的項(xiàng)目圖

四:RazorConfig類的內(nèi)容及作用

using System.Collections.Generic; using Nancy.ViewEngines.Razor;namespace NancyMvc.Config {/// <summary>/// Razor配置,如果你需要使用 cshtml,這個配置比較重要,當(dāng)然,也可以在這兒加入其它的類/// </summary>public class RazorConfig: IRazorConfiguration{/// <summary>/// 需加載的程序集列表/// </summary>/// <returns></returns>public IEnumerable<string> GetAssemblyNames(){//加了這句,才能處理 cshtmlyield return "System.Web.Razor";}/// <summary>/// 需要添加到cshtml中的名字空間/// </summary>/// <returns></returns>public IEnumerable<string> GetDefaultNamespaces(){yield return "System.Web.Razor";}/// <summary>/// 是否自動引用model名字空間/// </summary>public bool AutoIncludeModelNamespace{get { return true; }}} }

五:SiteRootPath 內(nèi)容及作用,不可少,不然項(xiàng)目有錯誤

using System; using Nancy;namespace NancyMvc.Config {/// <summary>/// 提供網(wǎng)站物理路徑的類/// </summary>public class SiteRootPath : IRootPathProvider{/*************************************************************** TinyFox Owin Server 默認(rèn)情況下* 網(wǎng)站是放在 TinyFox 進(jìn)程所在文件夾下的site/wwwroot中的* ----------------------------------------------------------* 如果你把 NancyFx 的 Views 頁放在其它的地方,應(yīng)該作相應(yīng)修改*******************************************************************//// <summary>/// 網(wǎng)站根文件夾物理路徑(for tinyfox)/// </summary>// static readonly string _RootPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "site", "wwwroot");// (for Jexus Web Server or Host in ASP.NET),如果自定義root后需要使用static readonly string _RootPath = AppDomain.CurrentDomain.GetData(".appPath").ToString();/// <summary>/// 獲取網(wǎng)站或WEB應(yīng)用的根文件夾的物理路徑/// </summary>/// <returns></returns>public string GetRootPath(){return _RootPath;}} }

六:MainModule的內(nèi)容與作用

using System; using System.Collections.Generic; using System.Drawing; using NancyMvc.Filter;namespace NancyMvc.Controller {public class MainModule: BaseNancyModule{/// <summary>/// 構(gòu)造函數(shù)/// </summary>public MainModule(){//在構(gòu)造函數(shù)中進(jìn)行路由配置Get["/home"] = UserFont;}private dynamic UserFont(dynamic arg){//顯示cshtml頁return View["Home/index"];}} }

七:BaseNancyModule?的內(nèi)容與作用

using System; using System.Collections.Generic; using System.Linq; using Nancy;namespace NancyMvc.Filter {public class BaseNancyModule: NancyModule{public BaseNancyModule(){//請求之前Before += context =>{return null;};//請求之后After += context =>{context.Response.ContentType = "text/html;charset=utf-8";};}} }

八:MyStatusHandler

using Nancy; using Nancy.ErrorHandling; using Nancy.ViewEngines;namespace NancyMvc.Handler {/// <summary>/// 自定義http status處理類/// </summary>public class MyStatusHandler : IStatusCodeHandler{private IViewRenderer viewRenderer;public MyStatusHandler(IViewRenderer viewRenderer){this.viewRenderer = viewRenderer;}/// <summary>/// 具體處理過程/// </summary>/// <param name="statusCode"></param>/// <param name="context"></param>public void Handle(HttpStatusCode statusCode, NancyContext context){var response = viewRenderer.RenderView(context, "Status/404");response.StatusCode = statusCode == HttpStatusCode.NotFound ? HttpStatusCode.OK : statusCode;context.Response = response;}/// <summary>/// 當(dāng)前狀態(tài)是否需要自己處理/// </summary>/// <param name="statusCode"></param>/// <param name="context"></param>/// <returns></returns>public bool HandlesStatusCode(HttpStatusCode statusCode, NancyContext context){//return false;return (statusCode == HttpStatusCode.NotFound//|| statusCode == HttpStatusCode.ServiceUnavailable//|| statusCode == HttpStatusCode.InternalServerError );}} }

九:Adapter?

using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Owin.Builder;namespace NancyMvc {class Adapter{static Func<IDictionary<string, object>, Task> _owinApp;/// <summary>/// 默認(rèn)構(gòu)造函數(shù)/// </summary>public Adapter(){var builder = new AppBuilder();var startup = new Startup();startup.Configuration(builder);_owinApp = builder.Build();}/// <summary>/// *** JWS所需要的關(guān)鍵函數(shù) ***/// </summary>/// <param name="env">新請求的環(huán)境字典,具體內(nèi)容參見OWIN標(biāo)準(zhǔn)</param>/// <returns>返回一個正在運(yùn)行或已經(jīng)完成的任務(wù)</returns>public Task OwinMain(IDictionary<string, object> env){//如果為空if (_owinApp == null) return null;//將請求交給Microsoft.Owin處理return _owinApp(env);}} }

十:Startup?

using Owin;namespace NancyMvc {public class Startup{public void Configuration(IAppBuilder builder){builder.UseNancy();}} }

十一:配置properties

啟動外部程序是tinyfox的包?下載地址http://linuxdot.net/down/tinyfox-2.3.tar.gz)

命令行參數(shù)中的 -p 8083是你配置的端口號 ?-root 后面的是你當(dāng)前項(xiàng)目的位置,不需要配到bin

?

本文章主要參考來源?http://www.cnblogs.com/gaobing/p/4969581.html

?

posted on 2018-05-21 16:39 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/9067963.html

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的Nancy 寄宿OWin的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。