我正在开发一个项目,将Web服务器从2008年升级到2012年。我已经制作了2012年的计算机,并准备好使用从当前生产2008年计算机上克隆的站点代码,但是当进行负载testing时,我发现出站带宽在新的比旧的要高得多。 我已经梳理了所有我能想到的事情,将解决这个问题,并对付死胡同。 (压缩设置,甚至头对头比较apphost.config web.config machine.config等)这些服务器运行相同的代码,相同版本的.NET,当然最大的不同是操作系统版本 – 但除了他们是相同。 例如:现在我有一台旧的和一台新的服务器负载相同,每个用户通过负载均衡器路由100个,所以stream量应该大致相等。 2008字节在:平均90kbps 2012字节在:平均86kbps (非常接近,反映了他们有相同数量的连接,对吧?) •2008年的字节数:平均64kpbs •2012字节输出:平均136kbps 在这个规模上并不是什么大事,但这只有100个用户。 在我们的服务器池中将这个数字乘以40-50k,这个出站带宽成为一个巨大的问题。 我们想下周与新的服务器一起生活 – 帮助! 更新:我在他们两个扔更多的stream量。 这是一个如何不成比例的带宽的例子。 目标是让底部graphics看起来像顶部graphics。 Update2:我刚刚克隆了一台现有的2008年机器,并做了2012年升级。 带宽比例看起来不错,与2008年的机器差不多。 我仍然无法find我的新服务器有什么不同。
我已经使用IIS重写规则和应用程序请求路由模块在Azure云服务中设置了一个反向代理服务器(根据这里的说明,除了调用我创build的用于下载mp4文件的端点之外,一切正常,这些端点当请求包含Range头部时,可以提供部分内容。我遇到的问题是,当我直接打开服务器时,它正确地响应206(部分内容)和正确的字节范围,但有时当我点击端点通过代理服务器,它响应一个200,和全文件内容,导致在video播放错误在Chrome中。 例如:当用这样的请求直接打到服务器时: GET server.domain.com/api/adFile/fileName使用标题:范围:bytes = 168-3922822 我正确地收到206响应。 以下是响应中的一些相关标题: caching控制:无caching Pragma:no-cache 内容长度:3922655 内容types:video/ mp4 Content-MD5:f1 + K8OT8TEjvtlPU5iUY8a == 内容范围:字节168-3922822 / 3922823 有效期:-1 Last-Modified:Tue,2016年2月16日15:46:46 GMT ETag:“0x8D336E86040C217” 服务器:Microsoft-IIS / 8.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET 当通过反向代理点击服务器时,请求如下: GET proxy.domain.com/api/adFile/fileName使用标题:范围:bytes = 168-3922822 我错误地收到200状态码和完整的文件内容。 这里是来自该响应的相关标题: caching控制:无caching Pragma:no-cache 内容长度:3922823 内容types:video/ mp4 Content-MD5:f1 + K8OT8TEjvtlPU5iUY8a == 过期时间:-1最后修改时间:2016年2月16日星期二15:46:46 GMT ETag:“0x8D336E86040C217” 服务器:Microsoft-IIS / 8.5 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET X-Powered-By:ARR / […]
我有一个使用Transfer-Encoding: Chunked的Node.js应用程序Transfer-Encoding: Chunked通过HTTP连续传输数据,直到客户端断开连接。 运行Node的本地实例时,它可以正常工作,但在部署到Azure App Service(通过iisnode运行Node应用程序)时,客户端连接将不会收到数据。 logging表明Node应用程序正在处理请求并正确传输数据,但由于某些原因数据未到达客户端。 以下是我从节点stream式传输数据的简单示例: var server = http.createServer(); server.on('request', function(request, response) { var interval = setInterval(function() { response.write("some data\r\n"); }, 1000); request.on('close', function() { clearInterval(interval); }); }); server.listen(config.port); 在我的iisnode.ymlconfiguration文件中,我设置了flushResponse: true来防止iisnode缓冲响应块。 我的猜测是,IIS正在尝试缓冲整个响应之前发送,但我不知道如何禁用此行为。
我们有时会在现场生产服务器上由IT团队更改web.config中的configuration。 我想创build一个审计跟踪,例如,“10月11日,文件”bar“中的”foo“属性改为”banana“。 我的第一个想法是创build一个每小时运行一次的PowerShell脚本,如果其中一个.config文件发生更改,请将其保存在带时间戳的文件夹中。 我的第二个想法是,这一定是一个已经解决的问题。 理想情况下,configuration文件的变化将不被允许,任何改变都需要一个新的部署,但是我不太可能推动。 我说“web.config”,但我有几个不同的XMLconfiguration文件:web.config,app.config,nant.configs。 我需要确切地知道这些configuration文件中(什么时候)和(理想地)由谁更改(大约)。 有什么样的标准方式或开源工具来做文件更改logging?
运行Win 2012 R2和IIS 8.5。 当设置自定义标识来运行特定的应用程序池(让我们称之为“应用程序池1”),我得到恕我直言,一个非常奇怪的行为。 当我点击应用程序池1,然后“设置应用程序池默认值”>“身份”>“自定义帐户”,并设置一个自定义标识(gMSA),然后通过“确定”并查看主“应用程序池”窗口我仍然看到运行应用程序池之前,我改变它的旧身份。 这是即使我做“iisreset”和/或重新启动有问题的服务器。 但是,如果我要通过重复上述步骤仔细检查设置,则可以看到我input的自定义标识(gMSA)仍然存在。 因此,当进入App Pool 1并查看哪个身份正在运行应用程序池时,我将获得我设置的身份; 当查看显示所有应用程序池的“应用程序池”时,我仍然可以看到旧池。 尝试做“iisreset”,重新启动整个服务器,检查事件查看器,并启用IIS日志=什么都没有。 然后,只是随机地从旧的身份改变到我设定的新身份。 很奇怪。 这不是重新启动之后,或者只是我刚刚发生的事情。 另一个奇怪的是,当我通过设置上述自定义标识来修改应用程序池时,运行所有默认应用程序池(NET v2.0等)的标识也会更改为该自定义标识。 因此,如果我将“应用程序池1”更改为gmsaRandomGmsa,那么身份也将运行所有默认应用程序池。 如果有人以前经历过这件事,并且知道是什么原因以及如何解决这个问题,请马上反应。 最好的祝福
我试图在PowerShell中自动创build一个服务器群。 通过手动创build,我得到了以下XML: <webFarms> <webFarm name="alwaysup" enabled="true"> <server address="alwaysup-blue" enabled="true"> <applicationRequestRouting httpPort="8001" /> </server> <server address="alwaysup-green" enabled="true"> <applicationRequestRouting httpPort="8002" /> </server> <applicationRequestRouting> <healthCheck url="http://alwaysup/up.html" interval="00:00:05" responseMatch="up" /> </applicationRequestRouting> </webFarm> <applicationRequestRouting> <hostAffinityProviderList> <add name="Microsoft.Web.Arr.HostNameRoundRobin" /> </hostAffinityProviderList> </applicationRequestRouting> </webFarms> 试图通过PS做这件事certificate麻烦,但是:据我所知,没有专门的API来做到这一点( WebFarmSnapin是为旧版本)。 我已经将注意力转移到了IISpipe理Cmdlet上,但只有一半工作。 我有的代码是: ##### # Overwriting the server farm ##### Write-Host "Overwriting the server farm $($webFarmName)" $webFarm = […]
前一段时间,我尝试在工作中的新的Windows 2008服务器上安装证书到IIS7。 导入进展顺利,但是当我尝试绑定一个站点来使用新的证书时,我收到一个对话框,其中包含以下消息: There was an error while performing this operation. A specified logon session does not exist. It may already have been terminated. (Exception from HRESULT: 0x80070520) 我设法find一个解决方法( 和博客关于它) 。 显式检查“允许此证书导出”checkbox使问题消失。 我有点担心,因为我觉得我宁愿没有私钥是可导出的。 除了我的博客条目,还有一些对这个问题的引用 ,但没有一个明确的解决scheme,为什么会出现这个问题。 有人知道为什么吗?
我只为一个站点启用了“ 失败的请求跟踪” ,并且我得到了一个URL_CHANGED事件作为日志中的第三项。 1. GENERAL_REQUEST_START SiteId="1", AppPoolId="DefaultAppPool", ConnId="1610613013", RawConnId="0", RequestURL="http://example.com:80/test/wp-admin/", RequestVerb="GET" 15:35:54.176 2. GENERAL_SET_REQUEST_HEADER HeaderName="AspFilterSessionId", HeaderValue="", Replace="true" 15:35:54.192 3. URL_CHANGED OldUrl="/test/wp-admin/", NewUrl="/index.php/test/wp-admin/" 15:35:54.192 4. GENERAL_REQUEST_HEADERS […] 5. GENERAL_GET_URL_METADATA […] 6. URL_REWRITE_START […] 有人可以告诉我URL_CHANGED事件来自哪里,以及如何防止它? 更新:我们的服务器上的“默认文档”设置为“index.php”。 如果path没有指定正确的文件或文件夹,服务器是否会自动附加index.php到path? 我试图删除所有“默认文档”条目,但这并没有改变行为… Update2:我仍然在寻找这个问题的答案… 😉
我们有一个IIS服务器,它不是尝试使用SSL通过LDAP对用户进行身份validation的域的一部分。 LDAP位于Active Directory上。 似乎IIS服务器在LDAP服务器上遇到问题,因为它无法validation它的真实性。 我们如何去认可AD的证书? 编辑:我添加了CA作为一个受信任的根证书颁发机构,似乎没有任何区别。
这有我击败… 我们有微软的dynamic与共享点业务门户界面使用共享点服务3.0。 即时尝试configurationSharePoint接口接受基本身份validation,以便反向代理工作。 我发现了一些需要改变的地方,无论是在SharePoint还是在IIS中,但是当我切换时,某些商业门户网站开始出现错误 – 例如项目沟通者和费用报告部分。 基本上,它看起来像任何出现在IFRAME不工作。 虽然我们还没有使用这些作品,但是我们会这样做的,所以这对我来说基本上是一个不错的select。 到目前为止,我试过: 只是将IIS从集成改为基本 将IIS和该站点的SharePointconfiguration更改为基本 configuration反向代理以提供身份validation的方式,IIS期望集成身份validation启用(即<域> \ <用户>) 我不愿意尝试build立另一个重复的网站(我在阅读共享书中的最佳实践),以支持整合和基本,但我不完全明白如何共享点的工作,我很讨厌再次打破。 此外,因为我不能让我们有我想要的方式工作,即时通讯怀疑生病可以这样做一个额外的网站。 任何人都有什么魔法可以帮助我呢? 编辑以包括下面的错误: 错误: 连接器:未指定的HTTP错误。 HRESULT = 0x800A1518 – 客户端:处理此请求期间发生意外错误。 HRESULT = 0x800A1518 – 客户端:发送SOAP消息失败或没有收到可识别的响应HRESULT = 0x800A1518 – 客户端:未指定的客户端错误。 HRESULT = 0x800A1518 Fault代码=客户端 faultstring =连接器:未指定的HTTP错误。 faultactor = 详细=连接器:未指定的HTTP错误。 HRESULT = 0x800A1518 – 客户端:处理此请求期间发生意外错误。 HRESULT = 0x800A1518 – 客户端:发送SOAP消息失败或没有收到可识别的响应HRESULT = 0x800A1518 […]