Nancy跨平台开发总结(三)发布到Jexus Web服务器

  • 在Centos7上安装Mono

    yum install yum-utils

    rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"

    yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

    yum install mono-devel

    yum insall mono-complete

  • 下载Jexus,下载地址htttp://www.linuxdot.net/
  • 安装Jexus

    tar -zxvf jexus-5.8.0.tar.gz 

    cd jexus-5.8.0

    sudo ./install 

    默认安装路径为/usr/jexus
  • 启动Jexus

    cd  /usr/jexus

    sudo ./jws start

    然后在浏览器中输入localhost/info

    会显示如下界面
    •   
  • 要想在Jexus上运行,还要在项目中添加一个Adapter和RazorConfig类,代码如下,只需要原样复制项目中即可
  • using System;
    using System.Collections.Generic;
    using Microsoft.Owin.Builder;
    using System.Threading;
    using System.Threading.Tasks;namespace WebSite
    {/// <summary>/// Jexus/TinyFox OWIN适配器/// </summary>class Adapter{/************************************** 这是一个比较完整的适配器示例* ***********************************//// <summary>/// OWIN 应用程序委托/// </summary>static Func<IDictionary<string, object>, Task> _owinApp;/// <summary>/// 适配器构造函数/// </summary>public Adapter(){//实例化一个应用程序生成器var builder = new AppBuilder();// 为生成器添加一些参数// 因某些OWIN框架需要从该参数中得到一些初始化环境信息// 这些信息可以包括 如“owin版本”“服务器功”能等等var properties = builder.Properties;properties["owin.Version"] = "1.0";  // 只能是1.0var disposeSource = new CancellationTokenSource();properties["server.OnDispose"] = disposeSource.Token;Func<Task> svrInitCallback = null;Action<Func<Task>> init = (callback) => { svrInitCallback = callback; };properties["server.OnInit"] = init;//.......var capabilities = properties.ContainsKey("server.Capabilities") ? properties["server.Capabilities"] as IDictionary<string, object> : new Dictionary<string, object>();properties["server.Capabilities"] = capabilities;capabilities["server.Name"] = "TinyFox";//capabilities["websocket.Version"] = "1.0";//......//实例化用户的启动类,并调用配置方法//如果用户启动类在其它的dll中,就需要通过反射找出这个类var startup = new Startup();startup.Configuration(builder);//构建OWIN应用并获取该应用的代理(委托)方法_owinApp = builder.Build();//要求应用程序域退出时,向本类发出通知AppDomain.CurrentDomain.DomainUnload += ((o, e) => { disposeSource.Cancel(); });//回调应用层初始化函数if (svrInitCallback != null) svrInitCallback().Wait();}/// <summary>/// *** Jexus/TinyFox所需要的关键函数 ***/// </summary>/// <param name="env">新请求的环境字典,具体内容参见OWIN标准</param>/// <returns>返回一个正在运行或已经完成的任务</returns>public Task OwinMain(IDictionary<string, object> env){//如果为空if (_owinApp == null) return null;//调用Microsoft.Owin的应用程序委托函数,将请求传给OWIN框架return _owinApp(env);}}
    }
    using System;
    using System.Collections.Generic;
    using Nancy;
    using Nancy.ViewEngines.Razor;namespace WebSite
    {public class RazorConfig : IRazorConfiguration{public bool AutoIncludeModelNamespace{get{return true;}}public IEnumerable<string> GetAssemblyNames(){yield return "System.Web.Razor";}public IEnumerable<string> GetDefaultNamespaces(){yield return "System.Web.Razor";}}
    }

     

  • 发布站点到本地,用WinSCP连接服务器,将发布后的文件拷贝到Linux服务器上的/var/www/website目录下.然后切换到/usr/jexus/siteconf目录,新建一个文件,名称为website,将目录下default文件的内容复制过来,并修改配置

    port=91

    root=/  /var/www/website

    hosts=*    #OR your.com,*.your.com

    owinmain=WebSite.dll
  • 修改防火墙

    $ vi /etc/sysconfig/iptables

    $ i,添加端口

    -A INPUT -p tcp -m tcp --dport 91   -j ACCEPT

    $ esc

    $ :wq保存退出

    $ service iptables restart
  • 重新jexus

    cd /usr/jexus/

    sudo ./jws restart

    输入localhost:91/
    •   

转载于:https://www.cnblogs.com/lpush/p/5164708.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stat函数_数据分析工具入门 掌握这些Excel函数就够了

1.什么是函数可以把函数理解为一个可以控制的黑箱子&#xff0c;输入X到黑箱子中&#xff0c;他就会输出Y&#xff0c;参数就是黑箱子的控制开关&#xff0c;打到不同的档位&#xff0c;黑箱子会输出不同的Y。2.常见函数分类文本清洗函数关联匹配函数逻辑运算函数计算统计函数时…

linux安装nodejs一键脚本,ubuntu16.04部署nodejs+vue框架脚本

#获取和安装nodewget https://nodejs.org/dist/v8.9.2/node-v8.9.2-linux-x64.tar.xzxz -d node-v8.9.2-linux-x64.tar.xztar xf node-v8.9.2-linux-x64.tar -C /usr/local#创建软连接ln -s /usr/local/node-v8.9.2-linux-x64 /usr/local/node#配置环境并生效echo "export…

Linux下jdk配置环境变量

vi /etc/profile在里面添加如下内容JAVA_HOME/usr/local/java/jdk1.6.0_01PATH$JAVA_HOME/bin:$PATHCLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH变量生效重新登录即可5.进入 /usr/bin/目录cd /usr/binln -s -f /us…

mysql获取当前时间毫秒_MySQL性能指标及计算方法

是新朋友吗?记得先点蓝字关注我哦~ 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析 人工智能+Python | 人工智能+物联网 来源:小职(z_zhizuobiao) 找我:✅ 解锁高薪工作 ✅ 免费获取干货教程 未 完 待 续 绝大多数MySQL性能指标可以通过以下两种方式获取:…

linux时间戳转换不对,转换为unix时间戳不正确

我有我写了一个函数(如果有一个很好的标准替代&#xff0c;请让我知道...)转换为unix时间戳不正确time_t get_unix_time(string time_str) {time_t loctime;time(&loctime);struct tm *given_time;time_str time_str.substr(0, time_str.find_first_of(.));replace(time_s…

什么是REST API?

REST指一组架构约束条件和原则&#xff0c;满足约束条件和原则的应用程序设计。架构&#xff0c;软件体系结构分为三部分&#xff1a;构建&#xff0c;用于描述计算机&#xff1b;连接器&#xff0c;用于描述构建的链接部分&#xff1b;配置将构建和连接器组成有机整体。web基本…

python socket send_python socket 连续send,出现粘包问题

使用网上socket代码实现ssh功能&#xff0c;如下&#xff1a;server.py#服务端Linux系统下&#xff1a;处理命令并返回import socketimport os#声明类型&#xff0c;生成socket链接对象server socket.socket()#监听接收端口元组(本地&#xff0c;端口)&#xff0c;绑定要监听的…

linux系统安装佳能打印机驱动,在ubuntu16.04 64-bit上安装佳能打印机驱动Linux_UFRII_PrinterDriver_V320_us_EN...

在ubuntu16.04 64-bit上安装佳能打印机驱动Linux_UFRII_PrinterDriver_V320_us_EN发布时间&#xff1a;2018-04-06 21:46,浏览次数&#xff1a;631, 标签&#xff1a;ubuntubitLinuxUFRIIPrinterDriverusEN1. 安装一些依赖项 (不确定它们是否都需要):sudo apt install libc6-i3…

python重复输入上面指令_stdin stdout python:如何重复使用同一输入文...

我对Python很陌生,对stdin stdout方法甚至更新.不过,我需要使我的脚本可用于UNIX命令,以便例如使用我的脚本一次处理2个输入文件.该脚本与命令行参数完美配合&#xff1a;newlist []def f1()....def f2(input_file):vol_id sys.argv[3]for line in input_file:if ... :line …

linux条件变量cond,Linux 条件变量 pthread_cond_signal及pthread_cond_wait

#include#include#include#includepthread_mutex_t mutex PTHREAD_MUTEX_INITIALIZER;/*静态初始化*/pthread_cond_t cond PTHREAD_COND_INITIALIZER; //init condvoid *thread1(void*);void *thread2(void*);int i 1; //globalint main(int argc,char* argv[]){pthread_…

哈希查找

哈希查找之前&#xff0c;我们要弄清楚哈希技术&#xff0c;哈希技术是在记录的存储位置和记录的关键字之间建立一个确定的对应关系f&#xff0c;使得每个关键字key对应一个存储位置f(key)。查找时&#xff0c;根据这个确定的对应关系找到给定值的映射f(key),若查找集合中存在这…

python两人一碰_python运用pygame库实现双人弹球小游戏

使用python pygame库实现一个双人弹球小游戏&#xff0c;两人分别控制一个左右移动的挡板用来拦截小球&#xff0c;小球会在两板间不停弹跳&#xff0c;拦截失败的一方输掉游戏&#xff0c;规则类似于简化版的乒乓球。因为是第一次用pygame写python小游戏并且只用了两三个小时&…

fedora 安装Linux源码,如何在 Fedora 29/30 上安装 VS Code

Visual Studio Code 简称 VS Code 是微软开发的一款跨平台的源代码编辑器。 它具有内置的调试支持&#xff0c;嵌入式 Git 控件&#xff0c;语法突出显示&#xff0c;代码完成&#xff0c;代码重构和代码片段。Visual Studio Marketplace 提供了许多插件和扩展来扩展VS代码的功…

2016-1-31

按照我之前的计划&#xff0c;应该是今天晚上才到家呢&#xff0c;可是21号就已经来到了&#xff0c;在家已经整整10天了&#xff0c;22号放纵了一天&#xff0c;有一天和CY出去溜了&#xff0c;所以应该是整整8天的时间是可以利用的&#xff0c;然而&#xff0c;我发现效果并不…

三菱伺服驱动器说明书_张家港市HG-KN13J-S100三菱伺服控制器

张家港市HG-KN13J-S100三菱伺服控制器MR-J2S1该产品还有RS-232和RS-422串行通讯功能&#xff0c;通过安装有伺服设置软件的个人计算机就能进行参数设定&#xff0c;试运行&#xff0c;状态显示和增益调整等操作。2与MR-J2S系列配套的伺服电机编码器采用了分辨率为131072脉冲/转…

linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)

2011年12月19日&#xff0c;参考网上用C语言实现的快速排序&#xff0c;经过一番修改后&#xff0c;用shell(我的测试环境为centos5的bash-v3.x)实现了相同功能&#xff1a;对数组进行升序排序。注&#xff1a;如果代码框里的代码复制出来后显示异常&#xff0c;就麻烦下载附件…

python接口自动化测试框架实战从设计到开发_Python接口自动化测试框架实战 从设计到开发...

第1章 课程介绍(不要错过)本章主要讲解课程的详细安排、课程学习要求、课程面向用户等&#xff0c;让大家很直观的对课程有整体认知&#xff01;第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的http\https请求包、如何模拟请求数据、过滤规则及修改响应数据、如何…

搭建 局域网

配件&#xff1a;网络交换机tp-link TL-SF1016D 16口&#xff08;预备继续添加主机&#xff09;&#xff1b;vk-qf9700 USB网卡&#xff08;10元一个&#xff09;&#xff1b;非屏蔽5类双绞线&#xff1b;机器都是win7的主机&#xff08;三台分别是 8&#xff0c;9,10&#xff…

Linux 禁用msi模式,通过禁用MSI模式解决Win10磁盘占用100%的方法

许多win10系统用户会在电脑中安装ssd固态硬盘&#xff0c;而在使用过程中经常会出现卡顿的情况&#xff0c;检查之后发现磁盘占用率100%&#xff0c;这是怎么回事呢&#xff0c;那么其实我们可以通过禁用MSI模式来解决&#xff0c;接下来给大家讲解一下通过禁用MSI模式解决Win1…

oracle jdbc jar包_Oracle总结之plsql编程(基础七)

紧接基础六&#xff0c;对oracle角色和权限的管理之后&#xff0c;在接下来的几次总结中来就最近工作中用过的plsql编程方面的知识进行总结&#xff0c;和大家分享&#xff01;一、plsql块1、只包括执行部分的plsql块打开输出选项&#xff1a;set serveroutput on&#xff1b;b…