GVKun编程网logo

“Windows Server 2012 R2”上“IIS 8.5”上的ASP.NET应用程序与“Windows Server 2008 R2”上的“IIS 7.5”相比表现不佳

15

对于想了解“WindowsServer2012R2”上“IIS8.5”上的ASP.NET应用程序与“WindowsServer2008R2”上的“IIS7.5”相比表现不佳的读者,本文将是一篇不可错过

对于想了解“Windows Server 2012 R2”上“IIS 8.5”上的ASP.NET应用程序与“Windows Server 2008 R2”上的“IIS 7.5”相比表现不佳的读者,本文将是一篇不可错过的文章,并且为您提供关于.net – 无法在Windows Server 2008 R2上的IIS7.5中运行net.pipe绑定、iis-7 – Windows Server 2008 R2上的IIS 7.5可以处理的默认并发请求数是多少?、Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App、Windows Server 2008R2 服务安装:IIS、DNS、SQLServer2008R2的有价值信息。

本文目录一览:

“Windows Server 2012 R2”上“IIS 8.5”上的ASP.NET应用程序与“Windows Server 2008 R2”上的“IIS 7.5”相比表现不佳

“Windows Server 2012 R2”上“IIS 8.5”上的ASP.NET应用程序与“Windows Server 2008 R2”上的“IIS 7.5”相比表现不佳

我们在几台服务器上运行相同的ASP.NET应用程序:

>一个实例在Windows Server * 2012 * R2上的IIS 8.5下运行
>在Windows Server * 2008 * R2上的IIS 7.5下运行两个实例

让我感到困惑的是,新机器似乎比两台旧机器都要糟糕!

在2012年的盒子上,大约80分钟的窗口显示平均37%的cpu使用率(处理器时间)和平均8个请求/秒.

在2008年的盒子上,在同一时间范围内,我看到32.5%的cpu使用率和12.5 Requests / sec:

更重要的是,2012年的机箱(英特尔酷睿i7-4770 @ 3.40GHz)上的cpu实际上应该比2008年的机箱(英特尔至强E3-1230 @ 3.20GHz)更快:

我对这种性能差异缺乏理解的另一个原因是,2012实例只运行一个ASP.NET应用程序,而两个2008服务器也完成其他任务:一个运行所有三个访问的数据库服务器应用程序实例,另一个在同一个IIS实例下运行了很多其他ASP.NET应用程序.

题:

任何人都可以说明在ASP.NET应用程序性能方面落后于装备更好的服务器的罪魁祸首是什么?

我相信这已经在几个地方得到了解决,但平衡电源计划可能导致性能状态之间的过度转换.这会导致异常糟糕的性能,并影响物理和虚拟.

将电源计划更改为高性能以将硬件用于其极限.

使用“平衡”电源计划时Windows Server 2008 R2上的性能下降:

https://support.microsoft.com/en-us/kb/2207548

https://sqlserverperformance.wordpress.com/2010/09/28/windows-power-plans-and-cpu-performance/

http://www.brentozar.com/archive/2010/10/sql-server-on-powersaving-cpus-not-so-fast/

编辑@oliver:

切换到高性能电源计划会产生以下PerfMon统计信息:

.net – 无法在Windows Server 2008 R2上的IIS7.5中运行net.pipe绑定

.net – 无法在Windows Server 2008 R2上的IIS7.5中运行net.pipe绑定

我正在尝试在两个进程之间(在同一个盒子上)配置服务器上的net.pipe绑定.我在 Windows 7中本地工作,但在生产服务器(Windows Server 2008 R2)上,它无法正常工作.

我可以证实我有:

>添加了一个net.pipe绑定到IIS“网站”(添加*作为信息).
>将net.pipe添加到IIS“网站”的“高级设置”中的绑定列表中.

这就是我的开发机器所需的全部内容.还有什么我需要做的吗?

我得到的错误来自一个简单的控制台应用程序测试客户端:

Unhandled Exception: System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://nameOfService.svc that Could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException,if present,for more details. —> System.IO.PipeException: The pipe endpoint ‘net.pipe://nameOfService.svc’ Could not be found on your local machine.`

这里有一些配置:

客户:

<system.serviceModel>
    <bindings>
        <netNamedPipeBinding>
            <binding name="NetNamedPipeBinding_IWebAppNotifyService">
                <security mode="None" />
            </binding>
        </netNamedPipeBinding>
    </bindings>
    <client>
        <endpoint address="net.pipe://nameOfService.svc"
            binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IWebAppNotifyService"
            contract="ServiceReference2.IWebAppNotifyService" name="NetNamedPipeBinding_IWebAppNotifyService" />
    </client>
</system.serviceModel>

服务器:

<bindings>
  <netNamedPipeBinding>
    <binding name="WebAppNotifyServiceBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNaMetableCharCount="2147483647" />
      <security mode="None">
      </security>
    </binding>
    <binding name="ScannerManagerCommandBinding">
      <security mode="None" />
    </binding>
  </netNamedPipeBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="WebAppNotifyServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="True" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="MonitoringApp.Notifier.WebAppNotifyService" behaviorConfiguration="WebAppNotifyServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="net.pipe://nameOfService.svc" />
        <add baseAddress="http://nameOfService" />
      </baseAddresses>
    </host>
    <endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="WebAppNotifyServiceBinding" contract="X.Y.IWebAppNotifyService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

更新:

与承载net.pipe绑定的网站关联的应用程序池在“NetworkService”用户下运行,如果这有所不同.

我在Windows 3.5.1的Windows功能下启用了非HTTP激活,尽管它在.NET 4下运行.

解决方法

>您是否启用了Windows服务Net.Pipe侦听器适配器和Windows进程激活服务? >您是否在网站级别启用了net.pipe绑定? >您是否在vdir级别添加了net.pipeprotocol?

iis-7 – Windows Server 2008 R2上的IIS 7.5可以处理的默认并发请求数是多少?

iis-7 – Windows Server 2008 R2上的IIS 7.5可以处理的默认并发请求数是多少?

我在哪里可以找到改变它的设置?
没有最大值,因为它取决于您的应用程序设置,硬件和.net框架版本.默认情况下,在框架3.51及更高版本下,每个cpu(逻辑)的并发请求数为5000.(如果未在2.0下定义,则为12,但推荐是将其设置为5000,如3.5和4.0)

这是在aspnet.config中定义的:

<system.web>
        <applicationPool maxConcurrentRequestsPercpu="12" maxConcurrentThreadsPercpu="0" requestQueueLimit="5000"/>
</system.web>

这是默认值,绝不是限制.我见过的最大的是999999(我怀疑他们害怕将它设置得更高,以防万一).确定合适尺寸的最佳方法是通过对应用程序进行压力测试.

Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

环境:Windows Server 2012,IIS 8,Asp.Net Core 1.1.

不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.Net Core App程序。过去无论是原始的Asp程序还是后来的Asp.Net程序,在IIS中的部署方式都没太大变化,仅需指向程序目录,然后设定虚拟目录,最后做一些参数配置。Asp.Net Core App为了做到跨平台,自带了一个轻量级的Web Server - Kestrel,那么要在IIS中部署Asp.Net Core App,就必须有一种新的机制来协调IIS与Kestrel Server之间的数据传递。

1.  Asp.Net Core的部署模式

与传统的Asp.Net程序不同,Asp.Net Core App使用了Kestrel Server。Kestrel是一个跨平台的Web Server,与IIS一样负责请求的监听、接收和响应,但没有IIS丰富的管理功能,仍需要由IIS来处理一些前置工作。(当然你也可以使用Apache来做前置处理)

分享图片

IIS负责把外部请求转发给后端的Asp.net Core App,充当“反向代理(reverse-proxy)”角色。

2.  理解反向代理

“反向”是指入站方向,“代理”可以理解为某种服务,这里是转发HTTP请求的服务。“反向代理”就是入站方向转发HTTP请求的服务。

和路由器原理一样,路由器除了让局域网能够访问internet,也可以通过设置NAT或端口映射,从internet访问内部的某台服务器,相当于把入站请求转发给指定电脑上,这与IIS的反向代理角色类似。代理服务器与路由器都是起到数据转发的作用,只不过代理服务器转发的是某类应用的数据,路由器转发的是数据包。

3.  部署环境

Asp.Net Core App部署需要操作系统满足:

  • Windows 7 或更新版本
  • Windows Server 2008 R2 或更新版本

4.  配置IIS

Windows Server上通过“添加角色和功能”,桌面Windows上通过“启用和关闭Windows功能”来安装和配置IIS。确保勾选Web服务和“IIS 管理控制台”:

分享图片

Windows Server IIS 安装配置 

分享图片

 桌面Windows IIS 安装配置

5.  安装.NET Core Windows Server Hosting程序集

安装.NET Core Windows Server Hosting程序集,让IIS具备反向代理功能。该程序集包含了.Net Core运行时(Runtime),.Net Core 类库(Library)和 Asp.Net Core Module。其中Asp.Net Core Module负责反向代理工作。

特别注意,按微软官方说法,如果是脱机安装,则需先手动安装Microsoft Visual C++ 2015 Redistributable。但实践证明即使在线安装很多时候也不会自动安装 Microsoft Visual C++ 2015 Redistributable,因此强烈建议手动安装Microsoft Visual C++ 2015 Redistributabl

另外,目前.NET Core版本升级很快,请下载最新版本的.NET Core Windows Server Hosting,确保服务器上的.Net Core版本不低于部署的Asp.Net Core App版本。

下载 Microsoft Visual C++ 2015 Redistributable

下载最新版本.NET Core Windows Server Hosting

安装完成重启系统或重启IIS服务即可。

6.  IIS中配置Asp.Net Core App

接下来的步骤与部署传统网站基本一致,但也有稍许不同,请留意。

1)  服务器中创建目录存放发布以后的App程序文件,确保App的web.config文件在网站根目录下。

2)  在网站根目录创建一个logs文件夹。如果你开启了某些日志服务,日志文件将记录在这里。当然也可以不记录日志,但初次部署对排错有帮助,建议创建。

分享图片

    web.config 中开启 stdoutLogEnabled="true"

<aspNetCore processpath="dotnet" arguments=".\Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

3)  在IIS管理器中添加网站。步骤与一般网站配置一致:

分享图片

分享图片

4) 配置应用程序池。在左侧导航栏选择“应用程序池”,选择指定程序池,右键菜单,选择“基本设置”,将.Net CLR版本设置为“无托管代码”。

分享图片

7.  测试Asp.Net Core App

本例使用一个测试公网域名www.test.com,显然我们没有权限更改此域名在公网的解析记录,但我们可以更改此域名在本地的指向用于测试。使用记事本打开C:\Windows\System32\Drivers\etc\hosts文件,添加一条记录 “127.0.0.1      www.test.com”。之后我们在本地访问域名www.test.com时IP地址将解析为 127.0.0.1。使用浏览器打开www.test.com,我们会看到Asp.Net Core App已正常运行:

分享图片

 

本文来自:https://www.cnblogs.com/lookerblue/p/7101641.html  

Windows Server 2008R2 服务安装:IIS、DNS、SQLServer2008R2

Windows Server 2008R2 服务安装:IIS、DNS、SQLServer2008R2

一、IIS

Inter information services互联网信息服务,微软开发的运行在Windows系统中互联网服务,提供了web、ftp、smtp服务

  • Windows server2003 、xp --> iis6
  • Windows server2008 、Windows7 -->iis7.0
  • win10、win8 -->iis7.5

搭建IIS步骤:

1.打开windows server 2008r2虚拟机,打开服务器管理器,进行选择下图所示

2.然后进入到如下图所示界面,操作如下图所示,应用程序开发、FTP服务器、安全性选项全选后,点击下一步,直到安装完成

3.打开dos命令窗口,输入netstat -ano,查看80端口号是否开启

4.打开浏览器,在浏览器中输入IP地址(IP地址在dos命令窗口中ipconfig可查看到),出现如下图所示界面,表示安装成功

 

二、IIS搭建web服务器

1.格式化D盘,一定要选择NTFS!!!不然后面添加默认文档时,会识别不了路径,可以右键D盘进行格式化

  (若D盘能用的省略这一步)

2.在D盘根目录下创建一个文件夹,存放你想要搭建的在网上下载好的完整web服务器,如图我创建的是dms文件夹,图中的文件夹是我在网上下载好的web服务器

3.打开运行Internet信息服务(IIS)管理工具,进行如下图所示操作

4.完成创建,进入所建站点,选择默认文档,在空白处右键选择添加默认文档,输入index.asp添加首页,如图所示

5.点击ASP,启用父路径,一定要点应用!!!

6.在浏览器中输入站点的IP地址,也就是虚拟机的IP地址,也可以在IIS中浏览网页

7.出现如图所示网页,表示站点搭建成功

  • 注:若访问网站时出现以下界面

解决方法:在IIS上面设置该网站可运行在32位的模式下面。

  1.找到该网站所引用的应用程序池

   2.在该应用程序池的高级设置里面--> 常规--> 启用32位应用程序,设置该值为true

  • IIS搭建ASP站点总结

  1、进入服务器管理器,找到添加角色;

  2、在服务器角色中勾选“Web服务器(IIS)”,然后角色服务中勾选需要的角色服务(应用程序开发);

  3、打开运行Internet信息服务(IIS)管理工具,展开左侧栏到“Default Web Site”;

  4、在功能视图中找到“ASP”图标,在ASP设置中将启动父路径设置为“Ture”.

 

三、 FTP服务器:

file transfer protocol 文件传输协议服务器,基于c/s模式,应用层,使用端口20(传输数据)和21(传输命令),明文传输数据,使用IIS搭建FTP服务器(注:b/s 浏览器和服务器  web服务器)

  • 服务类型:

    非隔离账号:所有的账号访问的服务器数据类型一致

    隔离账号:不同的账号访问的服务器类型不一致

  • 服务器搭建环境要求:

    IP地址可以静态配置,也可动态获取

    FTP服务器运行在IIS之上

 

四、FTP服务器非隔离账号的搭建

1.安装IIS,并且注意FTP角色的安装

2.打开dos命令窗口,新建组ftpusers,以及用户u1和u2并设置密码,并将u1和u2加入到ftpuses组中(这里就不做演示了,跟着命令走)

1 net localgroup ftpusers /add  新建组
2 net user u1 u1passwd /add  新建账号
4 net localgroup ftpusers u1  将u1添加到ftpusers组中
6 net localgroup ftpusers u2  将u2添加到ftpusers组中

  • 这里多讲windows的常用几个命令:
1 net user  查看用户
2 net localgroup  查看组
3 net localgroup 组名  查看指定组
4 net user 用户名 /del  删除用户

3.打开IIS管理器,右击网站,添加FTP站点,输入站点名称和物理路径,建议安装在除C盘外的硬盘,提前建立好站点目录,在站点目录中提前复制好几个文件,方便后面测试

4.安装完成后,进入所搭建的站点,点击用户隔离,选择FTP根目录,一定要应用!!!

5.禁用防火墙,不然宿主机不能访问到FTP服务器

6.在宿主机上打开dos命令窗口,访问FTP站点,在下图中可以看到u1和u2可以访问到的文件时一致的,所以是不隔离的

  • ftp 虚拟机IP

  • 常用的命令
复制代码
1 help 查看帮助
2 delete 删除文件
3 dir = ls
4 close 退出用户
5 bye 退出ftp服务器
6 pwd 查看目录
复制代码

7.接下来测试下载文件和上传文件

  • get 文件路径  下载文件到dos命令工作的目录:C:\Windows\system32

  如下图所示,看到了dos命令工作的目录中有了在FTP服务器中下载的文件,下载测试成功

  • put(以dos命令工作的目录为主目录,写路径)或(直接拖过来) 上传文件上传到ftp站点的根目录:D:\dms\ftpbugeli

我这里不能拖到dos命令窗口中,就上传dos命令工作的目录中的aadcloudap.dll文件

  如下图所示,看到了ftp站点的根目录中有了在FTP服务器中上传的文件,上传测试成功

 

五、FTP服务器隔离账号的搭建

1.安装IIS,并且注意FTP角色的安装

2.打开dos命令窗口,新建用户u3和u4并设置密码(这里就不做演示了,跟着上面的命令走)

3.在硬盘里建立好站点总目录,在站点总目录中在新建一个文件夹localuser(文件夹名称一定要是localuser!!!),并在里面新建以你测试要使用用户的用户名的文件夹,文件夹里面创建不同的文件,方便测试区分。文件夹名称一定要与用户名一致!!!这里我用的是administrator、u3和u4(注:为了方便我虚拟机内站点的管理,我把所有站点都放到了一个总的文件夹里)

5.为各个文件夹设置如下图所示的权限

  • administrator文件夹的权限

  • u3文件夹的权限

  • u4文件夹的权限

若删除不了其他用户的权限,进入高级安全设置,取消包括从该对象的父项继承的权限,就可以删除了

6.打开IIS管理器,右击网站,添加FTP站点,按照如下图所示做操作,没有截图的就是默认选项,注意这里的物理路径!!!

7.安装完成后,进入所搭建的站点,点击用户隔离,选择用户名目录
(禁用全局虚拟目录),一定要应用!!!

8.在宿主机上打开dos命令窗口,访问FTP站点,在下图中可以看到u3、u4和administrator用户可访问到的文件是不一致的,所以是隔离的

 

六、DNS

Domain Name System  域名系统,它是一个分布式数据库。存储域名和IP的一一对应关系,方便用户访问网络。能够将域名解析为IP(域名解析),也能将IP解析为域名(反向解析),该协议是基于UDP协议,默认端口是53

  • 域名空间结构

如下图所示,展示了域名系统最为常见的结构。“.”是完全合格域名(FQDN)中最后的符号,分析系统是从后往左分析,“ftp.liuliansuannai.”,此处“.”可以当做根域,“com”是顶级域名,“liuliansuannai”是二级域,“ftp”是主机名

  • DNS结构

DNS工作流程

  • 正向查询:根据域名找IP
  • 反向查询:根据IP找域名

在DNS工作过程,需要按照正向查询或反向查询的方式进行,在正向查询过程中有递归查询和迭代查询两种方式,用户PC向本地DNS服务器的查询时递归,本地DNS服务器向其他的域名服务器(根DNS、.COM DNS等)的查询是迭代,具体的查询示意图如下

  host文件位置 C:\Windows\System32\drivers\etc

 

DNS安装要求

  • DNS服务器端:
  1. 配置静态IP
  2. 首选DNS指向自己
  3. 网关可有可无
  • DNS客户端:
  1. IP地址可以静态也可以动态获取
  2. 首选DNS必须指向DNS服务器

 

DNS服务器记录类型

 

五、配置DNS服务器

1.首先搭建web服务器,打开服务器管理器 --> 角色 --> 添加角色 -->DNS服务器,进入一下界面

  我这里选择的是不安装,你也可以选择安装

 2.根据提示配置静态IP地址(首先DNS服务器地址填127.0.0.1即可)

3.然后再去服务器管理器里安装DNS服务器,安装好DNS服务器之后,再开始里面打开DNS管理器 --> WIN-HLPRVITRNMA -->正向查找区域,右键 --> 新建区域,出现如图所示界面,操作如图所示,没有显示的步骤,默认直接点击下一步

  • 注:这里的区域名称随便取,但注意格式

4.新建区域向导完成后,右键新建的区域向导,选择新建主机,完成后右键选择新建别名

  注:新建别名这里的目标主机的选择,建议直接点击浏览,然后选择你要新建别名的目标主机

5.打开IIS管理器,新建一个web服务器(教程参考章第一个),这里我用的是本篇所装的pentest,去打开IIS管理器,右击你所要使用的web服务器,选择添加网站绑定,注意这里的IP地址应与你新建主机的IP地址一致!!!

6.打开dos命令窗口,查看DNS服务是否开启,查看UDP53,如图所示服务开启成功

1 netstat -ano |findstr 53  查看53端口

7.测试DNS服务器是否可用,新建一个Windows客户端虚拟机,配置客户端的地址,要求首选DNS必须指向DNS服务器!!!

8.再客户端上进行测试,方法如下,若结果如图所示,则DNS服务器搭建成功!

  • 打开dos命令窗口,输入以下命令
1 ping www.baidu.com
2 ping yyy.baidu.com
3 nslookup www.baidu.com  #可以看到服务器分给客户端的地址

  • 打开浏览器,再地址栏中分别输入www.baidu.com和yyy.baidu.com

  • 若再浏览器中访问不了别名,将服务器再IIS中绑定的网站删掉,即可浏览别名

 

  • 访问web站点的方式:

  1.基于IP的访问方式,默认端口为80,这种方式搭建的web服务器在当前环境中只有一个

  2.基于IP+端口的访问方式,可以使用的端口较多,搭建的web服务器可以有多个;访问时:http://ip:port

  3.基于主机头的访问方式,需要DNS服务器支持,http://url:80、http://url:81


六、安装SQLServer2008R2服务

1.如果你跟着上面的步骤安装了DNS服务器,那么现在你应该是不能联网的,建议更改IP为下图所示

2.打开下载好的SQL server 2008 R2文件夹,双击setup.exe,进入安装界面,点击的安装,选择“全新安装或向现有安装添加功能”,进入安装程序,按照如图所示步骤进行操作

  • 我安装的是破解版,密钥已经提供了

  • 这里要先点击安装,然后等待

  • 下面的步骤根据自己的需求或者按照我的步骤进行操作

  • 这里要输入你的密码,一定要记住啊!

  • 等待......

  • 安装完成

2.在所有程序中打开SQLServer2008R2,进行如图所示操作

  • 这里的登录名一定要填sa,sa是默认登录名,输入密码进行登录

  • 进入以下界面

 3.打开IIS管理器,新建一个web服务器ASPCMS,为使用SQLServer2008R2进行管理,配置如下,详细步骤参考本章第一个教程

  • 在浏览器中浏览验证是否可用

4.打开MSSQL(SQLServer2008R2的简称),右键数据库,选择新建数据库,新建ASPCMS的数据库,进入到以下界面

5.进入到ASPCMS的根目录中找到AspCms_Config.asp文件,进行配置,修改如图所示,数据库密码填写你的密码(需要提前下载编译器,或使用记事本进行操作)

6.再次打开浏览器,访问ASPCMS的站点,发现出现以下错误

7.打开MSSQL,右键aspcms数据库,点击任务,导入数据,进入以下界面,主要操作如图所示

  • 导入完成

8.再次进入浏览器浏览ASPCMS站点,发现浏览正常

9.打开dos命令窗口,查看服务端口号

1 netstat -ano|findstr 1433  查看1433端口号

10.打开Navicat,点击链接,做如下图所示操作后,点击确认

关于“Windows Server 2012 R2”上“IIS 8.5”上的ASP.NET应用程序与“Windows Server 2008 R2”上的“IIS 7.5”相比表现不佳的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于.net – 无法在Windows Server 2008 R2上的IIS7.5中运行net.pipe绑定、iis-7 – Windows Server 2008 R2上的IIS 7.5可以处理的默认并发请求数是多少?、Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App、Windows Server 2008R2 服务安装:IIS、DNS、SQLServer2008R2的相关信息,请在本站寻找。

本文标签: