我在运行Windows 7 Home-64位的计算机上获取在IIS7中运行的MVC 3项目时出现问题。 这是我做的。 安装了IIS 7。 访问服务器并获得IIS欢迎页面。 创build一个名为d:\ MySite的目录,并将MVC应用程序复制到它。 (MVC应用程序只是在Visual Studio中创build一个新的MVC3项目时创build的标准应用程序,它只显示一个主页和一个帐户login页面,它在Visual Studio开发服务器内运行良好,我也将其复制出来到我的托pipe网站,它工作正常) 启动IISpipe理控制台。 停止默认网站。 添加了一个名为“MySite”的新网站,其物理目录为“d:\ Mysite” 更改名为MySite的应用程序池以使用.Net Framework 4.0集成pipe道 当我在浏览器中访问站点时,我得到了d:\ MySite目录中的文件列表。 就好像IIS没有将d:\ MySite的内容识别为一个MVC应用程序一样。 我需要做什么来解决这个问题?
编辑:由于下面的一些问题的答案潜在的关键性质,我join这个强烈的警告:不要删除我在这里说的filter,除非你确切地知道它在做什么; 您的应用程序的安全性可能会受到威胁。 我刚刚注意到,为IIS7.5configuration的新的Win 2008R2服务器具有默认情况下在根configuration中启用的ASP.NET ISAPI筛选器,因此在所有站点上都是如此。 我也检查了一个2008年和一个2008R2服务器我有权访问,而且也有同样的事情。 我的理解是,只有在经典模式下运行Web应用程序才需要这些; 我的应用程序都以集成模式运行。 我从一个ASP.NET站点删除了所有与ASP.NET相关的filter,我正在转移到新的服务器上,而且似乎没有导致应用程序出现任何问题。 事实上,在我删除v2应用程序中的32位v4条目之前, 确实造成了一个问题。 但是我把他们全部都拿走了,因为我不相信他们是需要的。 所以我的主要问题是:默认情况下,为了支持经典模式应用程序,这些应用程序需要它们运行的唯一原因在于: 第二个问题:我不应该在所有以集成模式运行的站点上删除它们,假设它们至less不做任何事情,最坏的情况是通过现有的(或者更糟糕的是,实际上处理请求! 奖金的问题:你认为如果我现在重新访问我的文件许可scheme的网站内容目录在这两台以前的服务器上,我会感到惊讶或注意到一些变化,因为只是发现上述? 编辑:请注意,它实际上可能是危险的删除aspnet_filter.dll条目ISAPI筛选器。 以下页面URL上的IsapiFilterModule条目指出,通过此filter来完成对受保护内容的过滤。 例如; .config .cs和.vb文件。 http://learn.iis.net/page.aspx/121/iis-7-modules-overview/
我有一组非常强大,利用率很低的服务器,它们运行着几台装有Windows Server 2008 R2和IIS 7.5的虚拟机。 问题:有时请求需要很长时间才能处理。 用户看到他们的浏览器在旋转,显然没有得到任何来自IIS的响应。 一些统计信息和尝试解决: 服务器(主机和虚拟机)上的负载可以忽略不计。 CPU永远不会超过5%,有10多GB的可用RAM,一切都通过MPIO连接到一个快速的SAN。 我每秒获得30到50个请求,dynamic和静态内容的混合,只有GET和POST。 大多数命中被caching(命中率为80%),所以fabric / SAN / IO上的负载几乎没有。 在主机和虚拟机上禁用TCP卸载,无论是在networking适配器上还是通过禁用TCP烟囱 Web应用程序正在ASP.NET 4.0集成模式下运行。 他们不会长时间打电话给第三方Web服务或类似的。 我已经尝试了processModel autoConfig,以及设置maxWorkerThreads,maxConnections,maxIOThreads等非常高的数字没有区别。 数据库查询都在不到1秒内完成。 我整理了一整天,并没有捕获一个需要更长时间的单个查询。 我看了大量的性能监控计数器; ASP.NET队列和应用程序队列总是空的,没有任何东西看起来排在队列之外(考虑到服务器根本没有出汗,这是没有任何意义的) 我已经确定使用appcmd列表请求,有时候会在IIS的“SendResponse”阶段中请求“滞留”20-60秒。 这是我迄今为止唯一能够find的东西,这对于我们为什么看到用户在浏览时陷入困境是有道理的。 请注意,尽pipe大多数请求都得到了快速处理,但看起来就像来自不同应用程序池的随机请求在此处停滞不前。 任何想法还有什么我可以看看? 什么会导致请求卡在IIS的“SendResponse”阶段?
我试图为MIMEtypes的application/json启用dynamic压缩。 在applicationHost.config中,我做了以下更改: <section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" /> 我也尝试用以下命令解锁该部分: appcmd unlock config /section:system.webserver/httpcompression 我的web.config设置(与applicationHost.config相同,但有其他mimetype): <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/x-javascript" enabled="true" /> <add mimeType="application/atom+xml" enabled="true" /> <add mimeType="application/xaml+xml" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" […]
我正在寻找一个IIS解决scheme(不是编程)来redirect一个网站到移动版本的网站。 它看起来可能,但不能确定,与IISredirect或使用IIS URL重写2.0。 如果是这样的话,怎么会这样呢? 例如:mywebsite.com/redirect到(如果移动设备)mywebsite.com/mobile 注意:我们目前使用IIS Redirect将httpredirect到https。
IIS7.5pipe理器中“工作进程”窗格中的虚拟字节是什么意思? 如果我打开IISpipe理器(在WindowsServer 2008r2上),并进入工作进程页面,我可以看到我的一个AppPool进程报告 Private Bytes (KB) 106,435.00 Virtual Bytes (KB) 748,788.00 但是,如果我看任务pipe理器,关联w3wp.exe进程报告69,276K 。 任何人都可以向我解释这些数字是如何相互关联的? 谢谢
我需要分析日志的Exchange,并希望获得额外的标头保存,如MS-ASProtocolVersion 有可能configurationIIS来logging这些额外的头文件? POST /[email protected]&DeviceId=ApplDNRJP5Dasdf&DeviceType=iPhone&Cmd=Sync HTTP/1.1 Host: email.asdf.mobi X-MS-PolicyKey: 886721299 Accept-Language: en-us User-Agent: Apple-iPhone5C1/1002.146 Proxy-Connection: keep-alive Accept: */* Content-Type: application/vnd.ms-sync.wbxml Connection: keep-alive Cookie: NSC_Fydibohf_2010_PXB_wtfswfs=ffffffff098a114045525asdfasdf Authorization: Basic bWasdfasdfasdfsdfa Content-Length: 64 MS-ASProtocolVersion: 14.1 Accept-Encoding: gzip, deflate
我看到在iis 7.5中,我可以为应用程序池指定一段时间来设置CPU%利用率限制 。 如果违反这个限制,我也可以杀死工作进程。 如果告诉它这样做,工作进程会在死亡后自动重启,还是需要手动干预? 在堆栈溢出有提及,它可以重新启动时间间隔完成…
有什么办法可以configurationIIS 7.5来执行URL重写到同一站点上的不同应用程序池,而不会遇到403.18错误? 我们在IIS 6上使用Helicon ISAPI Rewrite 3,它像一个魅力。 根级“应用程序”在它自己的应用程序池下运行,在IIS 6上,我们没有任何问题从该应用程序池进行URL重写到其他四个应用程序池中的任何一个。 但是,当我将相同的服务器configuration信息复制到IIS 7.5时,URL将重写为任何其他应用程序池失败并出现“403.18 – 禁止”错误。 奇怪的是,在IIS 5模拟模式下运行的IIS 6并不是(至less据我所知,通过查看站点服务configuration对话框),所以重写不会抛出403.18错误。 所以有些东西肯定是不一样的,但是无论如何,我一定还没弄明白。 顺便说一下,我们没有结婚Helicon ISAPI重写。 如果还有另外一种方法来使用另一个模块或方法来保存我们当前的重写configuration规则,那么我将非常乐意使用它。
题: 我面临以下情况: 部署在机器“vmsomething”上的ASP.NET .NET 4.0 Web应用程序。 在IIS 7.5上运行的Web应用程序驻留在vmsomething上的d:\ webs \ myapplication上。 应用程序的configuration文件: connections.config <?xml version="1.0"?> <connectionStrings> <remove name="server"/> <add name="server" connectionString="Data Source=OUR_DB_Server;Initial Catalog=MY_INITIAL_CATALOG;Persist Security Info=False;User Id=OUR_DB_User;Password=OUR_TOP_SECRET_PASSWORD;MultipleActiveResultSets=False;Packet Size=4096;Application Name="MyApplication"" providerName="System.Data.SqlClient"/> </connectionStrings> web.config中: <?xml version="1.0"?> <configuration> <connectionStrings configSource="connections.config"/> <system.web> <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/> <compilation strict="true" explicit="true"> <assemblies> <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> </assemblies> […]