[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---部署
上一篇我们环境已经准备完成,此时可以部署了,我们就以dtcms作为例子,http://bbs.dtcms.net/forum.php?mod=viewthread&tid=2420&extra=page%3D1,到这里下载源码,里面有文档和数据库脚本
用这个项目做例子主要是帮朋友研究的就是这个产品,并且相对来说功能比vs创建的模板网站要多不少,应该会遇到一些问题
1.创建数据库
我们需要一个可在虚拟机中访问到的数据库服务器,大部分同学本机应该就有数据库引擎,数据库创建到本地即可,我这边由于没装,所以使用了一个阿里云上的数据库,执行源码里面的脚本即可
2.修改webconfig连接字符串
3.发布网站,根据文档,我们发布后要把bin目录下的一些dll拷贝到发布文件的bin目录下
4.压缩发布后的文件夹,记得使用zip格式,现在我们遇到的问题就是如何上传到虚拟机的指定文件夹中
1)使用xshell连接Linux虚拟机
2)使用xshell的文件传输功能,需要你下载Xftp

3)和普通的ftp软件差不多,上传zip文件即可
5.解压缩zip,我上传到了/var/www/dtcms文件夹下
cd /var/www/dtcms/ #定位到文件
unzip -o PublishOutput.zip #解压缩
6.创建网站配置
vi /usr/jexus/siteconf/dtcms #创建文件
#内容
port=8080
root=/ /var/www/dtcms
indexs=index.aspx,index.html
记得增加防火墙配置
7.重启Jexus
cd /usr/jexus/
./jws restart
8.访问测试(发现不通)无任何日志,请求未被网站应用接收,开始尝试解决问题
1)使用vs创建默认网站模板(webform)部署测试不存在问题
2)创建默认mvc网站模板部署测试不存在问题
3)检查cms请求处理管道发现cms为了url重写,采用了自定义的httpModules,因此,尝试注释webconfig中httpModules相关配置,共三处
<system.web>
<compilation debug="true" targetFramework="4.0" />
<customErrors mode="Off"/>
<!--<httpModules>
<add type="DTcms.Web.UI.HttpModule, DTcms.Web.UI" name="HttpModule" />
</httpModules>--> <!--<httpHandlers>
<add verb="*" path="templates/main/*.html" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>-->
<!-- 文件上传大小KB-->
<httpRuntime requestValidationMode="2.0" maxRequestLength="2097151" executionTimeout="36000" />
</system.web> <system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<!--<modules runAllManagedModulesForAllRequests="true">
<add type="DTcms.Web.UI.HttpModule, DTcms.Web.UI" name="HttpModule" />
</modules>-->
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
部署后可以访问管理后台
4)由于xml中第三处依赖第一处,因此通过恢复注释的方法,确认问题出现在
<httpHandlers>
<add verb="*" path="templates/main/*.html" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
这个节点功能是定义禁止访问下载 templates/main/ 下的html模板文件,主要是考虑安全问题,目前还未找到为何影响了Jexus
目前修改为
<httpHandlers>
<add verb="*" path="*.html" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
解决了问题,但看起来和上面的配置并不等价
还有个解决的方案,可以通过Jexus配置:
https://www.linuxdot.net/bbsfile-3084
禁止访问某文件夹及其子文件夹中的内容
DenyDirs=网站文件夹路径的URL路径,如 “/abcfiles”或 “~/abcfiles”,多个路径,用英文逗号分开
解决这样的安全问题
5.url大小写问题
vi /usr/jexus/jws
注释掉export MONO_IOMAP前面的#
目前来说基本功能无问题了,准备生成模板看看url重新有没有问题,结果发现控制面板-界面管理-站点模板管理 没有模板记录,通过代码分析+记录日志发现
\DTcms.Web\admin\settings\templet_list.aspx.cs中的GetInfo方法存在Linux兼容问题,
其实就是路径的/\问题,windows下就两种都可以,而Linux只支持/,修改后重新发布,问题解决(目前发现此问题已无法重现)
[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---部署的更多相关文章
- 部署DTCMS到Jexus遇到的问题及解决思路---部署
上一篇我们环境已经准备完成,此时可以部署了,我们就以dtcms作为例子,http://bbs.dtcms.net/forum.php?mod=viewthread&tid=2420&e ...
- [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建
最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下,经过1天的研究,部署基本成功,可能有些细节还未注意到,现在把心得分享一下.过程比预期的要简单 身为.Net程序员,这个问题的第一步可能就是如 ...
- [.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路--验证码
上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以 ...
- 部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建
最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下,经过1天的研究,部署基本成功,可能有些细节还未注意到,现在把心得分享一下.过程比预期的要简单 身为.Net程序员,这个问题的第一步可能就是如 ...
- 部署DTCMS到Jexus遇到的问题及解决思路--验证码
上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以 ...
- 解决Web部署 svg/woff/woff2字体 404错误 iis 解决Web部署 svg/woff/woff2字体 404错误
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- 在Ubuntu 16.04上利用Jexus+.Net Core+Linux版SQL Server部署ZKEACMS.Core
百度传课视频地址:https://chuanke.baidu.com/v5849090-223278-1498090.html 一.SQL Server on Linux的安装 官方文档:https: ...
- disconf系列【2】——解决zk部署情况为空的问题
如下图所示,在安装完成之后,发现zk(zookeeper)部署情况为空. 注:承接上篇,环境未发生改变. 1.解决zk没有启动的问题 查看disconf日志,发现zk没有启动. 实际情况是:zk已经启 ...
- 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题
为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ...
随机推荐
- Python之re正则模块二
13.编译的标志 可以用re.I.re.M等参数,也可以直接在表达式中添加"?(iLmsux)"标志 *s:单行,“.”匹配包括换行符在内的所有字符 *i:忽略大小写 *L:让&q ...
- 【转】使用PowerDesigner的建模创建升级管理数据库
使用PowerDesigner的建模创建升级管理数据库 PowerDesigner是一种著名的CASE建摸工具,最开始为数据库建模设计,即物理模型(Physical Data Model)用于生成数据 ...
- Server 2008 R2远程桌面授权,解决120天过期问题
平时在使用远程桌面过程,我们经常会遇到这样的两个问题. 问题一.远程桌面的连接数限制 Server 2008 R2默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接 ...
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...
- 腾讯课堂web零基础
utf是国际编码 gb2312 国人发明的 gbk 补充集 想看网站源代码可以按F12 <meta name ='keywords' content='设置关键字'> <meta n ...
- vue2.0 带头冲锋(先穿鞋)
事先说明:这次截图纯手工敲打,可不容易了.刚学会站直,不穿鞋,不得直接摔个狗食屎.(皮糙肉厚也顶不住啊). 废话不多了 !开始学基础.学过anguler1.0 ,会比较容易学vue. 溶解使用的是 v ...
- 七、VueJs 填坑日记之渲染一个列表
在上一篇博文中,我们对vue组件有了一个简单的认识和大概的理解.在之前认识项目结构的时候,我们在/src目录中创建了一个components的文件夹,而今天就要用到了,这个文件夹的作用就是放置我们的自 ...
- Spring4 AOP详解
Spring4 AOP详解 第一章Spring 快速入门并没有对Spring4 的 AOP 做太多的描述,是因为AOP切面编程概念不好理解.所以这章主要从三个方面详解AOP:AOP简介(了解),基于注 ...
- 负载均衡手段之DNS轮询
大多数域名注册商都支持对统一主机添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就完成了简单的负载均衡.下图的例子是:有3台联通服务器.3台电信服 ...
- 盘点一下立过的flag并立几个flag
暑假前说了,要学opencv3,要看完冰火,要健身,要家教挣钱. 好样的,全都没落下. opencv3几乎是把80%的demo码了一遍. 冰火看完,还顺带学了一波知识,收获颇丰,搞到了马丁老爷子的几本 ...