2010-03-03 316 views
14

我刚刚在台式机上安装了Windows 7 x64 Ultimate。我安装了IIS,Visual Studio 2008,注册ASP.NET等。在IIS 7.5(Windows 7)下运行速度极慢的ASP.NET网站

我有这个ASP.NET 3.5网站我正在对这个新的IIS运行EXTREMELY慢。在STA和PROD服务器(Windows 2003 Server)和我的旧XP/IIS 5.1上,一切运行都很顺利。

通常需要1-2秒加载的页面需要8秒钟!

我在IIS论坛上看到了this post。它说了一些关于Vista/7的信息,不是关联连接(只是为了让你知道,该网站在本地运行,但它连接到远程服务器上托管的SQL Server 2005)。

似乎需要一段时间才能“开始加载”页面...我的意思是,我点击刷新,并保持几秒钟“等待本地主机”...然后,当它得到响应它加载整个页面正常...

我没有线索如何强制Win7/IIS7.5池数据库连接。

编辑:我创建了一个新的空的ASP.NET Web应用程序,以查看问题是否也发生了。答案是否定的,它响应速度很快,因为它应该有一个空的默认页面。也许是与数据库连接有关的东西。我会做一个进一步的测试。它应该是一种解决方法...

编辑2:调试应用程序我注意到延迟发生后的.NET代码(Page_Load等)执行......所以延迟似乎是当IIS将页面提供给浏览器时。

+0

适合serverfault.com的好候选人imo ... – ChristopheD 2010-03-03 22:28:58

+1

应用程序配置是编程/开发imo的重要组成部分。 – Russell 2010-03-03 22:32:45

+0

虽然与编程有一些相关性,但开发人员需要知道这种东西,因为他们必然会遇到它。 – slugster 2010-03-03 22:32:52

回答

5

对于那些有同样问题的人,这里有两种可能的解决方案。在Firefox

  • 1)禁用IPv6的支持(只适用于Firefox)

大多数,我发现了关于作者建议这种方法称为最快和干净的解决方案。你需要做的是基本上在Firefox中打开配置设置(about:config)并将network.dns.disableIPv6设置更改为true。在您的主机文件

  • 2)localhost更改设置(所有浏览器)

这来找我作为一个主意,检查那里,我怎么能在IPv6设置干涉我的机器上。我看到了上面提到的消息来源中的一条评论,他说可以通过简单地用url中的机器名替换localhost来解决问题。

不需要很长时间就可以检查并查看禁用IPv6本地主机查找与在Firefox中直接禁用IPv6的功能相同。

你需要做的基本上是评论/主机文件中删除这一行:

#::1    localhost 

注::: 1符号是等价的IPv6 IPv4的127.0.0.1查找地址。

我认为第二种解决方案可能更适合不想禁用IPv6的用户,而第一种解决方案可能更适合于所有其他用户在日常工作中仍未使用IPv6的用户。

+0

Gah链接已关闭! – 2010-06-14 10:29:47

+0

@IdeDevlin它的工作,但我会编辑的问题,以防万一它再次打破。 – emzero 2012-03-14 19:04:15

1

你可以尝试运行多个进程的应用程序池:

  • 打开IIS
  • 单击应用程序池
  • 右键单击该应用程序池为您的应用程序 ,点击高级设置
  • 找到 “最大工作人员进程”并将其更新为 它为3(或您希望允许运行的进程数 )。
+0

将它更新为3 ...没有任何改变....似乎需要一段时间才能“开始加载”页面...我的意思是,我点击刷新并保持几秒钟“等待本地主机”.. 。然后,当它得到响应它正常加载整个页面... – emzero 2010-03-04 01:04:22

+0

这听起来像每个请求重新激活服务。检查服务保持活动超时设置为零。 – Russell 2010-03-04 05:33:49

+0

你会在哪里设置? – noobish 2011-02-19 01:04:45

3

我遇到了同样的问题:使用Windows 7 64位上带有4 GB RAM的Core 2 Duo和运行1个网站的3个应用程序池进程的IIS 7.5上的IIS 7.5速度非常慢。这是我做了什么来获得速度回到IIS,问题解决了...

对我来说,诀窍是使用32位工作人员运行IIS,如Microsoft在IIS.net上所指示的,您可以在这里阅读:提供

http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/

简单的解决方案(我并不想在这里把它改写)......要么你可以运行在Windows命令提示符或从Windows PowerShell的一个1行命令1行命令。我只是从命令行运行它(确保以管理员身份打开Command Line或PowerShell - 右键单击​​>以管理员身份运行)。

感谢, 马蒂·麦吉

+0

我不知道你为什么要这样做,但你确定它不是因为IPv6吗?这是一个已知的错误。 – emzero 2012-04-03 03:18:10

+0

我所知道的是IIS.net网站建议IIS使用Windows 7 64位上的32位工作人员作为链接状态。我完全不知道它是否与IPv6有关。我所知道的是,我在本地机器上运行本地站点,而IIS在64位处理器上速度很慢,而在32位处理器上速度很快。如果它有帮助 - 我不必在Windows 2008 Server 64位上执行此操作,因为IIS 64位工作人员在此操作系统上运行得很好。 Windows 7对我来说是另一回事。 – 2012-05-22 20:04:28

+0

但你有没有尝试禁用ipv6,因为它在接受的答案中说? – emzero 2012-05-23 04:08:05

0

我知道运正在运行IIS 7.5,这可能并不适用于他,但我张贴这个,因为它可能会帮助别人跑IIS Express 8.0。我有同样的问题,没有任何IPv6或主机文件更改为我工作。点击F5刷新本地主机上的js更改后,我的asp.net MVC4项目非常慢。它发生在所有浏览器上 - Chrome,FF和IE。最终我发现IIS Express 8.0在提供js文件时速度非常慢,并且似乎是一个bug。如果我在命令行上运行iisexpress并点击F5,我可以看到每个js文件需要4或5秒才能加载。

我最终卸载IIS 8.0并安装IIS Express 7.5,并立即解决了问题。下面是我遵循的步骤:

IIS Express 8.0似乎与VS 2012一起安装,因此如果您有新的安装或可能的Service Pack更新,则可能会升级以前的IIS Express版本。