其3方定期,陆拾人服务器系统

By admin in 4858.com on 2019年4月16日

起来无关内容,可略过:

阳台上jsp虚拟主机环境的架构——windows200三+iis6+j贰sdk一.4.二+resin2.一.1六
.abu. at patching.net

不久前项目在运用EF了,mvc使用EF确实方便,因为加上效果的时候能够利用vs自动生成用ef的增、删、查、改的模板,大的增高的工效。但是不少人都碰着过用EF开荒的先后在率先次访问的时候会比用ADO纯sql慢大多,过一段时间不访问又会变慢。作者近来的几个品种分别是蓝狐软件工作室和二个百货集团系统都以用MVC伍+EF陆Code
First开垦的,都高出过如此的难题。下边小编就享受一下大家蓝狐在这几个优化的长河中使用的化解办法。

有人会问,笔者怎么不用Apache来配置,因为自个儿的服务器还要运营3个.NET的网址,而且网址和论坛时期完毕了同步注册和登录。

近来做事和生存都忙的不亦乐乎了。

前天,作者生日,自身纪念力也不太好,顺手写一篇文章,省得相当大心忘了。

主题材料讲述:第一回访问的时候不快,前边再度张开页面非常的慢,过了一段时间不访问页面然后重新展开页面又像第贰遍那样不快。

法斯特CGI是IIS下安顿PHP的二个新东西,配置方便,不受PHP的3贰或陆12人影响。可是难题也存在,近来论坛总是时快时慢,慢的时候响应超过20秒,方今几天还现出php-cgi.exe进度爆增的事态,二回出来超过2十几个进程,导致服务器卡死,唯有重新回收程序池本领处理掉,那样就尤其差劲。

做事和生活上都不太快心满志,12月尾出了车祸归家养伤。三月忙着今年的大事。

自己日常在windows上干活,此次要架设jsp虚拟主机运行条件,查看了一晃网上所能找到的资料,基本未有能用的,因为本身索要的是力所能及使iis同时既辅助.asp又援救.jsp而且又有什么不可做虚拟主机。

应用的才干和环境:

因为那样的图景作者又想用会原本的ISAPI情势来运转PHP了,
也正是刚刚小编才把ISAPI的周转条件完全消除,为何了?

给协调鼓鼓励吧

互动隔绝,且运转在80端口。反正寻觅出一群,参考一下,本身搞吧。

windows 2008 64位+IIS7.5

一,ISAPI方式不协理陆十位系统,在IIS6下会提示不是30个人程序,IIS七下提示脚本映射不对。

新近重拾nodejs和python,也给自身重力,继续求学。(也许Node还可以事先同事谈论研究,之后开启Node,python学习和.net学习)

一个2个找,那其间需求广大东西,不要怕麻烦,先准备好:

vs2013+mvc5

二,ISAPI是单进度,不会油但是生进程爆增的图景,先确定保证卫安全居再说。

 

壹、操作系统,我工作的环境是window200叁汉语版。

entity framework6 Code First

现行反革命说说自家的布局经历:

正文:

贰、web服务器,作者利用的是系统自带的iis6。

 

在网上找了三个本子的PHP
陆14位程序,分别是5.二.五,5.三.六,5.叁.8,能够说一个本子小编是过往测试。

前不久职业急需,日常也想缓解的题目。便是定期任务。

3、java处理平台,那里用的是java 2 sdk,se v壹.4.贰_06版。

自个儿动用MiniProfiler.EF来监督来会诊到底是怎么样导致页面第二次访问为何那样慢。监察和控制到的结果如下图:

下边是自个儿的率先步安装格局:

介绍下环境:

四、jsp/servlets运转平台,作者选择的是resin
2.1.1陆版,因为传说resin比tomcat运转效用高10倍以上,而至于

4858.com 1

一,加压PHP包到PHP文件夹下,配置PHP.INI文件,那个手续作者就不多说了。

语言: c#

resin的本子需求小心的是,小编听大人讲resin
二.x属于无偿版本,而3.x则是收取薪俸版本,所以采取resin 贰.一.1六版。呵呵。

 

二,在win200三的iis
陆里面建立好八个PHP的网址,在建好的网站上点鼠标右键,属性-主目录-配置,在“映射”中加上,“可推行文件”为PHP文件夹下的php5isapi.dll,扩张名叫php,明确。

框架环境: mvc

没东西了,开始。 

能够看出这么些页面第二次访问总共花了3764三纳秒,也正是37.陆秒,那样大的影响了用户体验,令人无法忍受。有会人说.net的先后第壹回作者就非常慢,但是那也太慢了。提高ASP.NET的次序质量化解方案有众多,比如化解第壹回访问就足以预编写翻译代码,可是那些不属于本文的座谈范畴,本文首要钻探EF和程序池初阶化慢的主题材料。我们首先想开的是否EF导致的太慢,按理说EF已经是6了不会质量这么差呢,而且sql部分只占1.陆%的岁月,也正是5九七.八纳秒的岁月。

3,然后在”Web服务扩展”中“增多多个新的Web服务扩展”,“扩张名”为PHP,“必要的文件”选用PHP文件夹下的php五isapi.dll,明显,重新启航IIS。

服务器应用环境:iis

一、安装java 2 sdk

 

其3方定期,陆拾人服务器系统。一切符合规律的动静下(小编在那边没出难点),phpinfo()是足以运作,也能收看运转数据的。可是我们精心看运转数据,难题来了。

 

不做java开垦,安装三个规范条件就足以了,去java.sun.com,网页左边有长足导航,直接去下载好了,有普通话版的。

蓝狐软件工作室通过了有些优化措施,终于把那么些”第壹次访问慢,再张开其余页面就飞速,隔1段时间不访问再拜访又变慢的难题“消除了。优化未来效果有了比较大的提高。甘休利用程序池之后的率先次访问结果:

1,安装discuz论坛,GD库检测展现noext,mysql_conntect()突显不帮忙mysql,也是身为论坛不可能健康安装。

争辩别的的语言依旧服务器也许还没服务器这么多坑

本身的安装文件名是:j二sdk-1_4_2_0陆-windows-i5八六-p.exe
,不提供url了,自身找去。

4858.com 2再度走访结果:

百度三个,找到诸多转发的消除方案,基本无用,而且都是试探性的发话,未有依照,可是有质地总比未有好,作者再也精心的看了一晃phpinfo()给自家的数据。进行了之类配置。

例如node的npm中 node-schedule 定期间并回调function

运行安装,现身分界面:

4858.com 3

一,将配置好的php.ini文件拷贝到c:\windows中,这年phpinfo()展现已经读取到了配备文件。

 

4858.com 4

隔很久不访问再一次访问页面响应时间也能维持四-8秒内。

2,拷贝php5ts.dll,libmysql.dll到系统C:\Windows\SysWOW6四中,因为自个儿是陆拾肆人系统。有的朋友反映未有libmysql.dll文件,这么些是mysql的库文件,去安装mysql的文本夹下有个lib文件夹,拷贝多少个libmysql.dll出来便是。当然小编的mysql也是陆十位的。

而c# 有那样的插件吗?

接下来接纳安装路线,全体设置好,本人操作,很简单的。

率先、难点由来剖析

EF方面包车型客车因由:

一、Code First第一回运维会相比程序中的Model与数码库表(database
initializer ),生成Model与数据库的炫丽视图

二、随着EF的开源,EF从陆方始就不会蕴藏在.net Framework中,安装.net
Framework暗许是不会安装EF的。因而EF程序集就从未有过生开销地镜像,那样每回程序运维,EF的代码都会因此just-in-time
(JIT)
compiler(即时编写翻译器)把MSIL中间代码编译成本效益识其余本土代码。因为那个变化的本地代码存在程序运营的长河之中的内部存款和储蓄器中,它将回收当程序进度被终止(例如:iis程序池回收,程序池私下认可是按需触发运维的,没人访问它就不运转了)。由于EF框架如故相比大的,EF陆文件大小到四-5M了,所以每一回运维都要重写编译本地代码有相比较明显的性质影响。

 

抛开EF框架程序运维慢的难点首要有以下双方面包车型大巴缘由:

1、站点更新后再次加载程序文件;

贰、iis程序池回收后也会须要再度加载(程序池暗中同意是按需触发运维的,没人访问它就不运营了)

MVC的程序第3次访问比较慢的的题材由于第一遍是要处理视图像和文字件.cshtml(生成为.cs文件)、加载引用的dll程序文件和最先化程序池等等。

叁,配置php的目录到系统环境变量,俺布署了1个,因为本人的php在D盘,所以安排为:d:\php;d:\php\ext;

有的 FluentScheduler

我装在c:\jdk目录下。

第1、优化方案

自作者第2是由此以下几方面来优化

四,重启系统最棒。做了上述事业,笔者的phpinfo()中显得了mysql已经安插成功。

看demo:

接下去设置环境变量,这一步很关键,别忘了:

一、安装Application Initialization

那是在iis八出来后才有的,iis捌内置的功能,而对此iis7.伍也提供了二个恢弘以辅助那些效果。

Application Initialization Module for IIS
7.5

在页面接近尾巴部分的地点,找到适合本人架构的设置链接

  • x86 for Windows 7
  • x64 for Windows 7 or Windows Server 2008 R2

安装那几个iis模块后,在iis分界面中并从未模块图标和安排界面,还需求安装:

安装成功未来会多了2个配置如下图:

4858.com 5设若仅布署程序池StartMode为AlwaysRunning还不放心的话,
也足以而且针对站点开启preload和DoAppInitAfterRestart。

设置使用程序池如下图:

 4858.com 6

安装网址如下图

 4858.com 7

配置好后,测试了下,效果十一分没错。
回收程序池后第贰遍张开各站点,延迟都相当低。
实在那一个模块的笔触和定期从外表触发贰个访问是同样的,只是,更加好的地方在于,它本身在程序池回收重启的时候就到位了那件事,而不会让外部访问有机遇见面第二回访问的气象。

然后安装论坛,一切OK。

4858.com 8

java_home = c:\jdk

二、用Ngen安装生成EF的本地镜像

1、打开cmd窗口

二、定位到dll所在的目录,如:cd d:\website1\bin,切换成程序的bin目录。

3、运行ngen命令

For 32 bit run:

%WINDIR%\Microsoft.NET\Framework\v4.0.30319\ngen
install EntityFramework.SqlServer.dll

For 64 bit run:
%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\ngen
install EntityFramework.SqlServer.dll

注意:此地依据你自个儿机器(是3二依旧64)和.net版本,选取相应的吩咐,只须要安装EntityFramework.SqlServer.dll,因为安重视EntityFramework.dll,会活动安装生成EntityFramework.dll的本地镜像。

不过终极的解决方案照旧不要在windows下运作PHP,依然略微坑爹的,未来本人连网址都要换来PHP来开辟了,保持全站代码统一。

讲解掉的其实都是demo案例

classpath = c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar

三、禁止使用第一次ef查询对表__MigrationHistory的问题

动用了ef的Code
first会在第三次ef查询的时候会对__MigrationHistory访问,是为着检查数据库和model是或不是协作,以管教ef能健康运营。通过监测会先进行上面包车型客车sql:

 

  1. SELECT
  2. [GroupBy1].[A1] AS [C1]
  3. FROM (
    SELECT
  4. COUNT(1) AS [A1]
  5. FROM [dbo].[__MigrationHistory] AS [Extent1]
  6. ) AS [GroupBy1]
  7. GO
  8. SELECT TOP (1)
  9. [Extent1].[Id] AS [Id],
  10. [Extent1].[ModelHash] AS [ModelHash]
  11. FROM [dbo].[EdmMetadata] AS
    [Extent1]
  12. ORDER BY [Extent1].[Id]
    DESC
  13. GO

 

那段sql语句其实中只是在开荒的时候有用,发表到生产条件,能够把那几个给禁止使用了以进步品质。消除办法:

Application_Start加代码

  1. Database.SetInitializer<lanhuBlog.DAL.BlogContext>(null);

lanhuBlog.DAL.BlogContext这是自小编项指标EF上下方类,你要基于你的类型替换来自个儿的EF上下方类。

 

以上配置,借使有情侣不通晓,能够留言给自家,一同念书。

在MVC和IIS运用 相比较优良。指标事让 FluentScheduler一贯运维

4858.com 9
4858.com 10

4、Model和DAl单独的分段的

用vs建贰个mvc项目,Model、DAL、Controller、View都在Web项目里面。为了削减model和DAL导致重新编写翻译dll带来的质量影响。小编把Model和DAL都单身的分支,编写翻译成单独的dll了。

 

你或者感兴趣的小说:

  • 阿里云完美教程 Window200三iis+mysql+php+zend环境安插
  • Windows Server 贰零一1 Iis8php环境布署格局
  • Windows 捌IIS中布局PHP运维环境的方法
  • win200三下
    iis+php快捷稳定的安排格局
  • IIS六.0中安排php服务全经过解析
  • IIS+fastcgi下PHP运营超时难点的化解办法详解
  • win2008 R2 下
    IIS7.5+PHP5.2.17+Mysql5.5.16+Zend3.3.3
  • Win二零零六 PRADO2 IIS七 PHP 伍.4环境搭建图像和文字化教育程
  • Win二〇一〇 PRADO二IIS七.5+PHP伍(法斯特CGI)+MySQL伍条件搭建教程
  • IIS7 配置齐全(ASP.NET 二.0, WCF, ASP.NET
    MVC,php)
  • php在window
    iis的莫名难点的测试方法
  • IIS
    PHP环境Temp文件夹的权杖难点引起的网址故障
  • IIS+PHP+MySQL环境中PHP.INI须求注意的多少个地方
  • PHP在陆十几人Win200三和IIS下运作设置方法
  • windows下行使IIS配置的PHP不能够上传文件的化解情势
  • PHP学习笔记
    IIS七下安装配备php环境
  • WIN200三+IIS陆 PHP
    5.三.八装置配置教程[图文]
  • php静态化页面
    htaccess写法详解(htaccess怎么写?)
  • PHP+.htaccess完结全站静态HTML文件GZIP压缩传输(壹)
  • php检验iis环境是不是辅助htaccess的方法

4858.com 11

path 路线里增多 c:\jdk;c:\jdk\bin

5、EF Pre-Generated Mapping Views(预生成映射视图)

Application_Start参预上面代码:

  1. using (var dbcontext = new EFDbContext())
  2. {
  3. var objectContext = ((IObjectContextAdapter)dbcontext).ObjectContext;
  4. var mappingCollection =
    (StorageMappingItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace);
  5. mappingCollection.GenerateViews(new List<EdmSchemaError>());
  6. //对程序中定义的具有DbContext逐壹实行这些操作
  7. }

先补充刚刚的周转职务。

4858.com 12

六、补充

假诺您感觉这还不曾化解”过了壹段时间不访问页面然后重新展开页面变慢“的难点,而且无法忍受第3遍访问依然有点慢,可以设置使用程序池的”闲时超时“和回收”固定期期距离“长一些要么建几个布置职责定期去访问使用了ef的页面,那样给ef热身,让ef不改变冷,那样能够卫戍长日子不请求网址,应用程序进度停止再度访问变慢的主题素材。设置使用程序池的光阴如下图:

4858.com 13

闲时晚点私下认可是20分钟,如若在超过20分钟都不曾请求这些利用程序池工作进程就要关闭。这里你能够安装依照自个儿索要设置长壹些。

 

转自:

 

 

MVC运用FluentScheduler 还须求安装一个地点

2、安装jsp/servlets运维平台,resin

4858.com 14

哪儿找?下载嘛,去www.caucho.com,上去就找download,下载最新版本就好了。

在Application_Start中增加FluentScheduler的类,

自笔者用的公文名:resin-二.①.1陆.zip,解压缩到c:\resin目录

Application_End中已经注释声明了,为了IIS回收机制,在关门时自动打开八个页面保持运维就能够。

记得及时做好上边这一步,设置resin的环境变量,笔者接连在此地忘了,最终系统找不到resin在哪里,当然不成事了。

 

resin_home = c:\resin

当前自身已每30秒存些log做试验,并扩大iis回收,在服务中并不曾刹车过。

4858.com 15

大致运转先提及此地。

接下去大家继续,运转c:\resin\bin\httpd.exe

万壹相称Aop,或数据库动态扩大定期职务,后续再扩大

4858.com 16

 

那时等待,然后出来了2个窗口,仔细看驾驭。要求专注的是,运转resin web
服务器和停业服务器

都要选取小的这些窗口来操作,不要间接把前面包车型客车特别大的窗口给咔嚓掉哦。

 

4858.com 17

此刻,resin服务的终极输出上能够见见,http listening to *:8080

那标记resin自带的web服务业已运营在本机的8080端口上了。

证爱他美下:

4858.com 18

到那里,resin服务器已经架设达成,如若只自个儿做测试jsp大概服务器跑这么1个网址的话

一心够用用了。当然,总是访问8080端口也不是很有利,自个儿能够手工业修改一下。

打开c:\resin\conf\resin.ini文件:

搜索<http port=’8080’/>,这几个是修改端口的

修改站点暗中同意目录也有2种改法,今后系统用的是c:\resin\doc下的剧情

在陈设文件之中只要写相对路径doc就足以了。

也正是<doc-dir>doc</doc-dir>中间的doc这几个地点。

4858.com 19

看见未有?

科学,其余<http port=’8080’/>这里修改端口就足以了。

可是、、、 呵呵,何人让自个儿还不满意呢。

 

三、将resin挂接进iis

本身先把iis6装起来,win2000的功利正是毫不的事物平日清一色不开,呵呵,真不错。

按步骤进行:

在c盘建立c:\web\jspsite目录。那个就是jsp网址的主目录。

然后在目录下开创四个测试用的test.jsp文件。

输入以下内容:

<html>
4858.com,<head>
<title>jsp simple example</title>
</head>
<body>
<% out.println(“hello, world!”); %>
</body>
</html>

4858.com 20

 

接着,在c盘建立c:\web\dllrun目录。

把c:\resin\libexec目录下的isapi_srun.dll
复制到c:\web\dllrun目录下。

关于为何要把dll复制过去,原因就是jsp的辨析是要经过resin提供的第1方的isapi接口举办的。

日常客户端提交url的时候,只要发现是.jsp,iis将把.jsp丢给iis_srun.dll来执行。

4858.com 21

 

前面那个目录还要再用,继续往下走:

起步iis陆.0,首先在web服务扩张里面增多允许.jsp后缀的web服务扩张。

推而广之名什么都随意填入,作者那边输入jsp。

4858.com 22

4858.com 23

那是windows200三里头iis陆.0巩固的平安功用,你能够允许服务器上有哪些服务扩展是同意的,哪些是禁止的。

允许jsp。

为了看得更掌握,我们创立一个新的站点。

4858.com 24

开荒站点质量,在isapi筛选器里面增加新的筛选器,名称随意,那里输入jsp,

再输入可施行文件,也正是刚刚说的resin挂接iis用的isapi过滤器,输入

c:\web\dllrun\isapi_srun.dll

4858.com 25

断定后,要注意一点,正是刚刚挂接进去的dll不会立时生效,优先级也显得*未知*

4858.com 26

从不提到,不用理会。继续往下走。

下边大家要求做的正是相比根本也很复杂的工作了,也正是修改resin的安排文件。

细心讨论c:\resin\conf\samples下的计划文件的参阅,

特别是要钻探iis.conf 和 virtual_host.conf

 

上面说一下笔者的安顿,笔者布置是如此,建立3个带主机名的网址,那样来模拟真实服务器

条件中,虚拟主机的情况。

那便是说本人安顿建立贰个jsp网址,abu.com 指向自个儿的ip 12柒.0.0.一

而127.0.0.一一向访问,是iis私下认可的asp网址。

比方那两个都能访问,那么注明,大家的指标已经高达了。

 

为了能够在地头实现访问abu.com的时候能够分析到1贰7.0.0.1笔者修改本机的hosts文件

4858.com 27

 

接下来,我修改c:\resin\conf目录下的布局文件resin.conf

这里十三分首要,但其实最首要的就多个地点。

将<doc-dir>注释掉,将resin自带的8080端口运维的劳务注释掉<http
port=’8080’/>

加入<http-server app-dir=’c:\resin\doc’>
那里的app-dir是缺省路径,假若resin自带的web

运作以来,缺省正是那个目录。

4858.com 28

和底下那里:

全面看<host>中间的那部分,那是树立虚拟主机的重要,每一趟扩大虚拟主机就须要修改这些局地,

各类站点用<>括起来。

4858.com 29

安排文件中央配好了。

上面加多一个resin.ini文件到从前创设的dllrun目录

累加始末

resinconfigserver localhost 6802
cauchostatus yes

意思正是当调用isapi_srun.dll的时候读取相关安排

4858.com 30

 

回去iis里面,将主机第一名加多进去。

4858.com 31

给虚拟主机用户增加账号。

4858.com 32

加入guests组 
4858.com 33

然后给相应的目录设定权限:

给c:\web\jspsite目录增添刚才用户的权能,注意需求给读写都给。

4858.com 34

给c:\web\dllrun目录刚才那一个用户的读权限:

4858.com 35

在iis陆.0里面包车型客车运用程序池中间增多一个新的池

名字叫jspapppool,然后给这些池 应用程序池标记给予system权限。

4858.com 36

实际那里能够给更低一些的权位的,有心的爱侣能够团结商讨一下。

把jsp的网址加入到那么些池中有益集中管理。

4858.com 37

在jsp的网址上增添三个虚拟目录,目录名叫scripts,并且给予可推行的权柄。

4858.com 38

最终别忘了给这么些网址的周转权限设定为刚刚的jsp_user用户。

4858.com 39

 

重启resin,重启iis。

反省resin有未有挂接进iis的方法正是看isapi筛选器

4858.com 40

倘诺事态是铅白箭头,表示早已被系统挂接成功。

接下来浏览abu.com访问test.jsp文件

4858.com 41
4858.com 42

而asp网址也还要能够运转

4858.com 43

消除收工。

您可能感兴趣的篇章:

  • Windows200三下php五.四安装配置教程(IIS)
  • windows200三 IIS6陈设MVC三和MVC四程序的章程
  • Win2003下IIS以法斯特CGI格局运作PHP
  • Ali云完美教程 Window200三iis+mysql+php+zend环境安插
  • Windows 200三 IIS
    不补助ASP难点的化解格局
  • win200叁配置DNS、NAT及搭建IIS网站的章程
  • win200三 sp二+iis 陆.0上布署.net 2.0和.net
    4.0网址的艺术
  • PHP在陆拾陆位Win200三和IIS下运转设置方法
  • Win2003IIS浏览ASP提示不恐怕找到该页的消除办法
  • WIN200叁+IIS陆 PHP
    5.叁.8设置配置教程[图文]
  • WIN2004IIS相关错误的化解方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有