Articles of asp.net

ASPX.NET Web服务和IIS7,应用程序池

我有一个运行在.net framework 4.0版本上的aspx.net网站,网站使用表单身份validation,除了系统的一小部分,其中保存了networking服务,已被configuration为可以被所有人访问(使用web.config文件中的位置设置)。 该应用程序安装在Windows 2008服务器IIS7.5上,配有自己的内存池,为.NET 4.0configuration。 还有一个DefaultAppPool也configuration好了,我原来是为.NET 2.0configuration的。 我正在调查运行其中一个我的Web服务的问题,其中一个函数被调用时返回错误404,我解决了这个问题,但是我注意到,每当我收到错误,返回错误的.NET版本是版本2.0 ,而不是版本4.0,它应该运行在应用程序池中。我通过将DefaultAppPool的设置更改为4.0来确认此行为,然后错误由适当的版本生成。 IIS似乎已经决定了应该使用哪个内存池,绕过了我为aspx.net网站configuration的内容。 有任何其他人遇到类似的问题,我会发疯,是否有一个configuration选项隐藏在某个地方,可以certificate这种行为? (即在machine.config中的某个地方)

IIS和ASP.NET MVC的固体故障转移?

我们的团队目前正在计划我们下一个看起来很激动人心的大项目! 我们的产品将是一个ASP.NET MVC网站,可以在客户自己的服务器上部署,也可以在我们的服务器上支付一个实例(这将通过在networking上运行的configuration服务自动完成)另一个话题)。 我们不希望在基础设施方面走在顶端,我们不一定需要,所以对于最初的部署,我们希望有2个运行IIS7的Win2k8盒子作为networking盒子。 1个主要的SQL Server 2008数据库服务器作为主服务器运行,而作为从服务器/故障转移服务器的服务器略微less一些。 SQL故障转移不是问题(因为我们是SQL Server的书呆子!) 但是,我们不确定如何实现networking故障转移,因为现在我们不想在早期阶段将两台networking服务器之间的负载分开,而是让它在故障转移之前耐心地等待故障转移。 我已经研究过像HAproxy之类的各种高可用性系统,但并不完全了解如何进行这种configuration。 (我并不是说我们正在寻找HAproxy的build议..这只是我们见过的大浪和ldirectord等系统中的一个。) 我也应该注意到,如果需要的话,我们并不害怕在Linux机器上运行负载平衡器!

iis 7.5失败的请求追踪不测量速度

我为testing网站设置了“失败的请求跟踪”,但它并未测量页面呈现的速度。 它只是说“采取的时间:0毫秒” 我在另一台服务器上build立了一个类似的testing站点,并且我testing了速度。 跟踪失败应该测量页面服务的速度,对吧?

事实之后诊断DDOS

我pipe理专用服务器上的ASP.net站点的代码和部署。 Windows 2008-64 R2,8GB内存,双核心。 这是一个专门的内部网站,从来没有太多的stream量。 我们遇到的大多数性能问题都是服务器上的内存问题(应用程序有时必须导入和解释来自1GB + Excel文件的数据,或者处理大量的数据以便插入到数据库中)或DB(从上述插入,有时由于数据被更新而同时插入到同一个表中,所以与表锁相结合)。 前几天,在整个时间里,现场的处理器显示器有六个小时的时间超过了95%。 网站反应迟钝,有时根本无法访问网站。 我们的监控服务每分钟收到两次有关持续处理器过度使用情况的电子邮件,但除了一些没有重复的警报外,没有任何内存不足的问题。 而从用户的angular度来看,报告显示上传带宽比平时慢很多。 我检查了Windows日志 – 没有什么不寻常的。 在网站上检查了我的内部日志,看是否有任何可能导致这种情况的现场活动,也没有什么可以解释不良行为(甚至是可能解释内存不足的东西)。 所以我仍然在为这个服务器事件寻找一个原因(它自己清理,非常突然)。 我能想到的另一个解释是DDOS攻击。 整个网站都有密码保护,但是我认为如果在这段时间内有足够的连接到主页上,会导致我所知道的症状:持续的高处理器利用率(没有任何内存的打击,因为login页面不是dynamic的),并减less双向带宽。 有什么方法可以试着去validation这是否可能是原因? 在Windows服务器或IIS中的任何默认日志会logging这样的信息? 还有什么其他原因可以导致我描述的症状吗?

.NET 2.0应用程序现在在IIS 7.5上运行缓慢

我最近将运行IIS 6.x的Windows 2003 Server(物理盒)中的应用程序移动到了Windows 2008 R2标准(VM)IIS 7.5服务器中(并且仍在testing中)。 该应用程序是一个.NET框架2.0应用程序,并在2.0应用程序池下运行。 除了一件事情,这个网站很好用: 永远拿回要求。 我一直在使用Chrome Inspect Element进行跟踪,它会查询网站,最多可能需要45秒才能回答。 现在,当页面(s)立即呈现,但是这是最初的请求,它正在杀死它。 我没有看到错误日志或与应用程序或Windows事件查看器甚至IIS日志的问题,所以不知道从哪里开始寻找下一个。 一些新的变化是之前的应用程序驻留在Pix防火墙之后,现在在DMZ区域内的大型networking环境之后(我相信NetScaler也被用来pipe理networking)。 我没有看networking本身的权利/能力,但可以联系数据中心人员深入了解这一点,但我想确保它不是我的应用程序,可能会导致放缓或IIS。 综上所述: .NET 2.0应用程序在IIS 6.x中运行良好 应用程序移动到一个IIS 7.5服务器,现在渲染速度缓慢,但当它确实呈现立即回应页面。 编辑解决scheme 发现这是放缓网站的SOAP调用。 在新的数据中心,我的应用程序不能请求SOAP调用,所以它们在40-45秒左右之后超时。 现在试图找出我是否可以安装代理服务器redirect这…

域控制器重新启动后出现IIS 503错误

我有一个奇怪的问题,我的一个IIS 7.5框。 我的一个同事重新启动了主域控制器,并且在备份之后IIS框开始发出503错误。 我重新启动IIS并没有帮助,重新启动框确实照顾它。 该应用程序是一个asp.net应用程序。 事件日志中没有任何东西可以看到,在httperr日志中有这样的行: 2011-12-07 15:03:47 67.67.44.56 8677 159.50.70.50 80 HTTP/1.1 GET / 503 1 AppOffline www.thegreensheet.com 我的问题是:为什么IIS下降,我能做些什么来防止它下降? 谢谢你的帮助。 -詹姆士

移到Asp.Net 4.0后,HttpBrowserCapabilities呈片状

在IIS6上将站点升级到asp.net 4.0后,我们发现有些Safari浏览器偶尔会出现问题。 我已经将其追溯到Asp.net的HttpBrowserCapabilities中的一个不正确的浏览器检测。 有时候用EcmaScriptVersion == 0.0检测Safari浏览器为“mozilla”。 令人沮丧的是,这是来来往往 – 有时是有效的,有时却不行。 具有特定用户代理的浏览器将工作一段时间,停止工作一段时间,然后再工作一段时间。 一个用户代理程序不能正常工作的例子是:“User Agent = Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_8; en-us)AppleWebKit / 534.52.7(KHTML,像Gecko)版本/ 5.0.6 Safari / 533.22.2“ 烦人的是,浏览器检测在我们所有的非生产服务器上正常工作。 我比较了不同服务器上的Config / Browsers / *。browser文件,它们是相同的。 考虑到configuration可能只是caching在asp.net框架的某个地方,我也从4.0安装运行“aspnet_regbrowsers.exe -i”。 这没有任何作用。 无论浏览器是否刷新了caching,这似乎都会发生 – 即使浏览器从未见过该站点,也会遇到此问题。 我也重新启动了几次IIS。 没有重新启动,我想不出别的办法。 任何想法可能导致这个? 编辑:2012年1月19日 我花了好几天的时间试图找出这个问题失败的原因。 它在我看来也许它与应用程序池有关,因为一些应用程序池正在返回正确的值,但有些不。 当我将一个错误的web应用程序从一个应用程序池移动到另一个应用程序池时,它有时会暂时工作,直到第二天它不再工作。 我的猜测是,游泳池有一些线程是腐败的,但我似乎无法清除它们。 这个间歇性的问题在回收池,停止和重启iis以及重新启动系统时仍然存在。 如果您使用Safari浏览器访问http://www.industrymailout.com/Industry/Capability.aspx ,您可以看到UserAgents会显示为“Browser = Mozilla”,并显示为“Browser = […]

IIS7 Isapi和Cgi被禁用,但网站仍在运行(重新启动后)?

我有一个与asp.net的IIS7。 我想testingIsapi and Cgi的影响。 但是,当我“不允许”他们都+重新启动iis – 它仍然工作! 即:我的网站仍然可以运行! 那是怎么回事,我能做些CGI + Ispai的影响?

如何在IIS7中重写Rejected-By-Urlscan

我将一个ASP.NET应用程序从IIS6迁移到IIS7,在这样做的同时我也将我的重写设置从Intelligencia.UrlRewriter移植到使用IIS重写。 在“Rejected-By-Urlscan”错误(像/åäö.html这样的/åäö.html应该被redirect到我的404页面)时遇到了一些问题。 在Intelligencia.UrlRewriter这工作: <rewrite url="^~/Rejected-By-UrlScan" to="~/sidan-finns-inte.html"/> 我将其移植到: <rule name="Rejected-By-UrlScan"> <match url="^Rejected-By-UrlScan" /> <action type="Rewrite" url="/sidan-finns-inte.html" /> </rule> 但我不断得到IIS内部404错误,而不是我的404错误(sidan-finns-inte.html)。 我怎样才能解决这个问题?

如何testingIIS7的OrphanWorkerProcess(以及OrphanActionExe和OrphanActionParams)?

什么是testingIIS7的OrphanWorkerProcess设置的有效方法正在工作? 我有一个脚本和我的应用程序池configuration中的所有设置。 但是,它似乎只是简单地回收应用程序池没有办法。 我甚至validation过,脚本永远不会尝试使用ProcessMon加载。 我基本上正在尝试做类似这样的事情: http://support.microsoft.com/kb/828222 这里是IIS 7参考页面: http : //msdn.microsoft.com/en-us/library/bb386513(v=VS.90).aspx 我认为我遇到的问题可能是我简单地期望当我回收应用程序池时孤立进程,但这是行不通的。 参考文献说: “指定是否将工作进程分配给孤立状态,而不是在应用程序池出现故障时将其终止。 ” 所以也许真正的问题可能是: 如何调用失败来查看我为orphanActionExe设置的脚本是否正在运行?