Articles of asp.net

IIS 7返回304而不是200

我有一个奇怪的问题与IIS 7。 有时似乎返回一个304而不是200。 这是一个用Fiddler捕获的示例请求: (请注意,所请求的文件尚未位于我的浏览器caching中。) GET https://[mysite]/Content/js/jquery.form.js HTTP/1.1 Accept: */* Referer: https://[mysite]/Welcome/News Accept-Language: sv-SE User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; .NET4.0C; .NET4.0E) Accept-Encoding: gzip, deflate Host: [mysite] Connection: Keep-Alive Cache-Control: no-cache Cookie: … 请注意,请求中没有If-Modified-Since或If-None-Match。 […]

ASP.NET性能在32位/ 64位服务器之间降低

目前,我们正在将32位生产服务器升级到更强大的64位服务器,同时升级到ASP.NET 4.但是,在进行轻负载testing时,我们似乎正在降低性能。 我已经创build了一个简单的负载testing,用20个用户的恒定负载执行一些简单的用例,并比较结果: 正如您所看到的,性能最高的configuration是使用ASP.NET 2.0的现有32位服务器。 您可以看到,通过在64位计算机上以32位模式运行IIS,与现有的32位服务器相当,但在64位服务器上以64位模式运行IIS时,性能明显较差。 我不确定这是为什么,因为新的服务器更好。 由于某种原因,我每次用64bit的IIS运行testing,一开始就有一个大的峰值,然后平衡,但响应时间比32bit还要长。 当我以32位模式运行IIS时,尖峰消失。 请注意,应用程序池/应用程序没有在testing之间重新启动,但尖峰一直在那里,响应高于其他configuration。 所以 – 我的问题是:有没有人知道这是为什么? 有没有我需要设置的configuration设置? 有没有人有一些关于我如何能够缩小什么导致差异的指针? 当前生产服务器:Win Server 2003 – 32bit – IIS6 新服务器:Win Server 2003 R2 – 64位 – IIS6

IIS 7应用程序池标识权限

在这个问题的脉络。 其他的问题也涉及到这个问题,但是让我们得到一个完整的答案: 具有域用户作为应用程序池标识的通用IIS 7站点需要哪些特定权限? 具有域用户作为应用程序池标识的ASP.NET IIS 7站点需要哪些特定权限? 是否有任何技巧/快捷方式来应用这些权限?

IIS 7.5不加载静态HTML页面

新安装的专用服务器上有一个IIS 7.5。 ASP.NET 4.0 Web应用程序复制到它的文件夹,新的网站是在80后自己的IP上创build的,IIS_IUSR和IUSR帐户拥有读取/执行站点文件夹的权限,站点被分配到自己的集成应用程序池与4.0 .NET (我尝试了与相同结果的经典池)。 问题是:当我尝试访问这个网站时,浏览器只加载由.NET资源生成的内容,例如aspx页面,.axd文件等。静态图像,静态js,css和html文件在页面源代码中,但IIS不不为他们服务。 所有浏览器中的开发工具都抱怨说,所有这些静态资源都是由服务器发送的错误内容types(纯文本而不是图像,样式等)发送的。 我做错了什么?

如何通过Powershell为IIS APPPOOL \ *帐户添加ACL权限?

我希望能够为新网站设置IIS帐户具有修改权限。 我有以下脚本: function Set-ModifyPermission ($directory, $username, $domain = 'IIS APPPOOL') { $inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit" $propagation = [system.security.accesscontrol.PropagationFlags]"None" $acl = Get-Acl $directory $user = New-Object System.Security.Principal.NTAccount($domain, $username ) $accessrule = New-Object system.security.AccessControl.FileSystemAccessRule($user, "Modify", $inherit, $propagation, "Allow") $acl.AddAccessRule($accessrule) set-acl -aclobject $acl $directory } 但是,当我运行它,我得到这样的错误: Set-Acl:此工作站与主域之间的信任关系失败。 我认为这是因为IIS APPPOOL不是一个真正的域,而是一个假的帐户上的一个奇怪的前缀。 有没有正确的方法来引用该帐户,以便我可以做这个工作?

设置validateIntegratedModeConfiguration = false为了继续使用identity impersonate = true是否安全?

我们已经将ASP.NET Web应用程序从IIS6升级到了IIS7集成模式。 我们的应用使用: <identity impersonate="true"/> 因此我们必须确定: <validation validateIntegratedModeConfiguration="false" /> 这是明智的吗? 我的本能说不,但在谷歌search这个问题,这个“解决方法”被build议访问的每一页。 在IIS7集成中,模拟不再是一个好的做法,我们应该放弃它,并提出一个不同的解决scheme?

Asp.net 4.0处理程序映射IIS7中丢失

我有两个Windows 2008 R2服务器运行一个asp.net 4.0应用程序。 有问题的服务器实际上加载的asp.net页面就好了,但如果有任何Ajax调用,他们不工作。 我注意到在IIS中没有.net 4.0特定的处理程序映射,就像其他服务器一样。 它实际上缺less所有.net 4.0映射(.axd,.soap,.cshtm,.ashx甚至.aspx)。 我试过运行“aspnet_regiis -ir”,但没有帮助。 我应该重新安装.net 4.0框架? 手动添加所有这些缺less的映射? 还有什么事吗? 我不想做的是将一大堆处理程序添加到web.config中,在服务器上不需要它们,因此在破坏的服务器上不需要它们。

无法从.Net 4.5网站获得除403以外的任何内容

scheme:干净的服务器2008 R2安装与IISangular色。 已安装的框架3.5(服务器function)已安装的框架4.5 RC(MS下载) 执行 C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -i (我会在现有的服务器上使用-iru ,但这是一个干净的版本)。 通过文件系统发布(SMB共享) 使用.Net 4.0集成应用程序池将文件夹转换为应用程序 停止/重新启动一切。 浏览到localhost/TestApp导致403.14(禁止浏览目录) 我错过了什么步骤? 有问题的网站是MVC4,面向4.5 RC框架

是否需要serviceAutoStartProvider属性来自动启动ASP.NET应用程序?

我一直在阅读Scott Guthrie关于Auto-Start ASP.NET应用程序的文章 ,该文章提供了关于如何设置ASP.NET 4.0应用程序以自动启动的示例。 <applicationPools> <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" /> </applicationPools> <!–…–> <sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" /> </site> </sites> <!–…–> <serviceAutoStartProviders> <add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" /> </serviceAutoStartProviders> 从他的文章中不清楚的是,如果下面的configuration将自动启动一个ASP.NET应用程序: <applicationPools> <add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" /> </applicationPools> <!–…–> <sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled="true" /> </site> </sites> 这里的区别在于没有指定类来启动。 理想情况下,应用程序将被加载。 有关站点应用程序的文档意味着serviceAutoStartEnabled属性需要serviceAutoStartProvider属性才能工作。 但是如果没有提供额外的属性,没有指示会发生什么。 […]

IIS7 ASP.NET应用程序 – 2个相同的应用程序池中的2个相同的应用程序,1是响应和1不是

我有一个安装在虚拟目录(作为应用程序)的ASP.NET(v4.0)Web应用程序,并托pipe在它自己的应用程序池中。 对于应用程序的每个实例(即每个客户)重复这一点。 应用程序池是集成(非经典)模式,并且LoadUserProfile设置为true。 否则,默认设置。 每个实例当前都有它自己的代码/configuration副本,它是自己的数据文件夹(基本文件读/写)。 这个应用程序的1个实例运行良好(用于比较的操作需要约4秒)。 每个其他实例运行缓慢(从10-25秒为同一操作)。 如果我将较慢的实例移动到“最快”的应用程序池,那么这个实例就会变成现实。 如果我将更快的实例移动到速度较慢的应用程序池中,则该实例会减慢抓取速度。 应用程序池最初是以相同的方式创build的 – 手动。 后来我使用了powershell copy例程,以确保更快的应用程序池的精确副本,并仍然是相同的行为。 比较apppool.config文件显示它们是相同的,禁止虚拟目录分配。 没有共享资源正在被阻止,据我所知,我testing通过closures性能的应用程序池并重新启动…慢仍然很慢,然后当我重新启动应用程序池(所以它被加载最后)还是更快