我正在使用Windows Server 2008 R2只托pipe一个应用程序(asp.net mvc3)。 初始页面加载第一次真的很慢。 在我的应用程序池回收设置中,只检查“常规时间间隔”(分钟),并将值设置为1740.如果我理解正确,我的应用程序池将每29小时回收一次。 然而,我注意到有时几个小时后,我回到我的网站,页面加载速度再次缓慢。 应用程序池似乎被回收。 这是开发服务器,根本没有stream量。 这是因为没有交通,所以它会自行回收,即使时间间隔设置为29小时?
我们遇到了一个IIS 7.5的问题,我们有一个简单的部署系统,它由以下部分组成: 创build一个新的webroot的zip文件,由三个文件夹组成: Api Site Manager 这是解压缩到一个新的文件夹(假设我们称之为“SITE_REV1”),并包含一个脚本调用以下(每个webroot一个): C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site" 这通常工作,在9/10次。 在某些情况下,webroot似乎正确更新(如果我检查IISpipe理器中的基本设置,path看起来是正确的),但运行的网站实际上是指向旧的位置。 我们设法“修复”的唯一方法是运行IIS重置。 回收有问题的应用程序池是不够的。 有时似乎甚至有必要重新启动,但我不是100%确定这是准确的(我自己并不总是解决问题)。 我使用Powershell和Webpipe理模块重写了脚本,希望appcmd中有一个小故障,但同样的问题发生。 Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site" 有没有人经历过这样的事情? 有谁知道发生了什么事情,我能做些什么来防止这个问题? 进行IIS重置对我们来说并不是一个好的select,因为每次我们尝试在单个站点上部署更改时,都会影响服务器上的所有站点。 编辑:我们已经确定,在IISpipe理器中的站点(而不是应用程序池)的启动/停止解决了错误的物理path,但如果我停止使用appcmd的站点,更改物理path,然后启动它,我仍然遭受同样的问题。 我在空白处
根据http://support.microsoft.com/kb/944884 ,“当通过较慢的networking连接向客户端发送大型响应或大型响应时,所需时间字段的值可能会高于预期值”。 我有一个情况,客户会说:“我在10:03:24发送了一个请求到你的web服务器,花了20秒,为什么?”。 我也可以在IIS日志中看到这一点,但服务器的ASP.NET模块将其logging为100ms,CPU和磁盘计数器为低。 我怀疑这是由于networking连接速度缓慢。 我怎样才能certificate这一点? 更新: 1)这些是SOAP Web服务请求,因此没有embedded的graphics,只有一个带有单个XML页面结果的HTTP POST。 2)另外,我已经通过在客户端节制networking速度来再现这一点,症状也完全一样。 3)问题是间歇性的,这意味着对于客户端而言相同的请求通常是快速的,但是偶尔会很慢。 除了通过限制networking之外,我不能再现这个。 服务器的ASP.NET日志logging显示它总是很快,但是当客户端说速度很慢时,IIS日志logging显示它很慢。 4)我只能访问服务器,并且需要向客户端提供尽可能多的信息,以便他们接受问题不在服务器上,并知道在客户端上运行什么日志/工具来查找根本原因。
我正在面对Windows 7(x64)上的IISpipe理器的一个奇怪的问题。 在家里,我有Win7专业版,当我检查我的IISpipe理器图标在开始菜单,我看到它的链接 %windir%\system32\inetsrv\InetMgr.exe 当我从命令行启动时,它就像一个魅力。 但是,在工作中,我有Windows 7 Enterprise(x64),当我在开始菜单中检查我的链接时,条目完全相同。 如果我点击它 – 它就像一个魅力。 现在,如果我想从命令行(cmd.exe或TakeCommand)启动它,文件就不存在了 – a DIR %windir%\system32\inetsrv\*.exe 显示了一些文件,包括一个“inetmgr6.exe” – 但没有“inetmgr.exe” – 当然,我不能启动它:-( 奇怪的是,当我在Windows资源pipe理器或Windows Powershell中查看目录%windir%\system32\INetSrv时,我看到了INetMgr.exe文件,我可以启动它 – 没问题。 ****在这里发生了什么? 如何从我的经典命令行findINetMgr.exe并从那里启动? 更新:好的,一些更新。 在我的工作笔记本电脑上, INetMgr.exe文件看起来确实位于一个名为c:\windows\syswow64\inetsrv (我从内存中回想起来,所以不要在目录名称中引用我 – 就像那样) 。 我可以看到这个如果我在例如Powershell或Windows 7资源pipe理器中search它。 然而,从一个“经典”的命令行像cmd.exe,它似乎是在c:\windows\system32\inetsrv …..嗯….麻烦的是 – 即使我现在知道文件的位置,我无法从我的经典命令行访问该目录 – 即使我运行cmd.exe作为具有提升特权的pipe理员…….所以我知道文件在哪里,但仍然不能解决我的问题问题:-(
我正在为IIS 7.5 Express的applicationhost.configconfiguration一个站点: <site name="default" id="1" serverAutoStart="true"> <application path="/"> <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" /> <!– ^^^^^^^^^^^^^^^^^^^^^^^^^^^ –> </application> … </site> 我发现如图所示指定相对path似乎不起作用,将导致HTTP 500.19 Internal Server Error 。 IIS进一步报告错误代码0x8007007b ,在一些Googlesearch后,似乎表明一个无效的文件path语法。 有什么办法解决这个错误,以便我可以使用相对的物理path为我的网站的根?
我们目前正在使用MS Web部署工具将一个活动网站和一些WebServices从一个临时文件夹同步到两个活动服务器。 暂存箱在17000端口上承载任何IP上的站点,而两台现场服务器是负载平衡的,并且每个IP都有不同的IP。 目前,我生成了两个单独的软件包用于部署 – 每个机器一个 – 使用sync操作并指定DestinationBinding参数,如下所示: msdeploy -verb:sync -source:WebServer,computerName=localhost -dest:package="machinename.zip" -setParam:type="DestinationBinding",scope="SiteName",value="ip_address:port:". (分成多行,以便阅读!) 我运行这个两次,为两台机器的每一个不同的目标文件名和IP地址。 就部署而言,我只需从每个包到其各自的活动站点进行同步。 我知道,我知道 – 我应该可以通过生成一个参数化包,然后可能使用两个服务器中的每一个的SetParamFile开关 – 相信我,我想,但是这样做的文档是坦率地非 – 存在。 现在我需要为这个站点configuration和部署HTTP 和 HTTPS绑定; 包括也将被使用的SSL证书。 我已经在临时框中为站点添加了一个SSL绑定 – 它使用了一个开发证书(这需要被replace – 或者应该使用现场证书吗?),现在上面的命令行起作用了在http和https条目上replace目标IP。 看来我不能在上面的-setParam的DestinationBinding值中指定多个绑定加上证书信息,所以任何人都知道我将如何去做这件事? 任何帮助不胜感激。
我的机器正在运行Windows 7旗舰版。 以下是我迄今为止所做的(成功): 在FastCGI上使用PHP安装IIS 7.5 得到它的工作! 当我去http://localhost/index.php ,我的PHP脚本运行良好。 冉ipconfig找出我的本地IP地址是192.168.1.102。 我确认http://192.168.1.102/index.php的function与上面的localhost地址完全一样。 进入我的路由器pipe理(我有一个Linksys WRT54G2),并设置在端口80端口转发到192.168.1.102。 现在端口80正在转发到我的机器。 在Windows防火墙中设置入站规则以允许端口80上的所有活动。 找出我的外部IP地址来自Google。 我们称之为XXX.XX.XX.XX. 然而,当我尝试从我自己的机器,或从远在电脑上的http://XXX.XX.XX.XX/index.php ,而不是在我的networking上,无论如何…我什么也没得到。 它试图连接一段时间(失败),但最终只是放弃。 这是我想知道的: 我错过了什么? 我忘了/忽略了什么? 我如何才能在自己的本地networking之外工作并访问? 假设我确实得到了这个工作,那么我怎样才能使用80端口以外的端口呢? 我需要做些什么改变(例如IIS,Windows防火墙,路由器pipe理等)才能做到这一点? 非常感谢!
我一直花费数小时试图学习和理解IIS 7.5中的Windows身份validation,Kerberos,SPN和约束委派。 有一件事我没有得到,为什么让pipe理员,首席执行官等启用授权(即不禁用敏感账户授权)是“冒险”的。有人可以简单地向我解释这个吗? 请框架你的答案相对于内联网的环境。 我的推理是,这不应该成为一个问题,因为委托只是允许前端Web服务器在与其他服务器进行通信时代表Windows Authenticated人员进行操作。 如果这个人有访问权限,他们有权访问,我不明白为什么这应该是一个问题。 请原谅我的无知。 我主要是一名开发人员,但是现在我的公司运行得非常精简,而且我也不得不戴上服务器pipe理员帽子…不幸的是,它仍然不太合适,哈哈。
对于开发环境,我可以在IIS7.5中创build创build自签名证书。 但是该证书是SHA-1,最近浏览器正在抱怨。 当我打开FireBug时,我看到以下警告: “该站点使用SHA-1证书;build议您使用带有使用比SHA-1更强的散列函数的签名algorithm的证书。” 所以我的问题是: 1)是否有办法创build比SHA-1更强的自签名证书? 2)如果没有,有没有办法告诉浏览器停止显示这些警告? UPDATE 我结束了使用@vcsjones的答案,但那只是我到目前为止。 在这之前,我们需要解决一些问题,然后才能开始工作。 1)出于某种原因,我无法使用密码导入证书。 所以我最终创造了一个没有。 2)当我通过IIS导入.pfx证书时,当我尝试在“编辑绑定”中应用新证书时,我不断收到“指定的login会话不存在”。 所以我做了很less的研究,发现这个答案是有用的,特别是Mike L的答案。 另外我要补充的是,当你导入证书时,请记得select.pfx证书。 导入向导的默认select是* .cer,您可以导入(我犯的错误),但是我无法在IIS服务器证书中看到证书。 当我向近处看时,图标中缺less一点钥匙。 现在,我研究了,我能够通过KB-889651文章修复它。 所以请确保您导入.pfx,它将无需修复。 另请注意,如果您对此证书有信任问题,请将其导入“受信任的根证书颁发机构”。
我在Win Server 2008 R2的IIS 7.5上遇到了一个错误,每当我尝试更改任何站点绑定或启动应用程序池时,出现以下错误: Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config Error: Cannot write configuration file 应用程序池作为networking服务运行。 没有任何正在运行的网站受到影响,但其configuration无法更改 2012年5月10日更新 重新启动解决了这个问题,但是我很想知道是什么原因造成的。 更新09/04/2013服务器不再生产。