Articles of iis 7

为IIS7和MVC创build一个独立的静态内容站点

参考这个服务器默认的博客文章: 几个速度的改进 ,它谈到如何从一个单独的无Cookie域提供stackexchange的静态内容… 如何在IIS7.5上为ASP.NET MVC网站做​​这个工作? 迄今为止的计划: 注册域如static.com,在IIS中创build一个新的网站 从MVC手动复制js / css / images文件夹,以便它们在新服务器上具有相同的path 启用IIS gzip设置(js / css =高压缩,图像=无) 设置远期将来的到期date的caching web.config中的<clientCache cacheControlCustom="public" /> 切勿在static.com网站上设置任何cookie 结合并最小化js / css 使用WebDeploy自动部署静态内容中的更改 这个计划是否正确? 而且,如何使用WebDeploy将整个Web应用程序部署到一个服务器,然后只将静态项目部署到另一个服务器? 我可以看到有一个类似的问题,但对于Apache: 创build一个无cookie的域来提供静态内容,所以它不适用

IIS 7重写子域指向特定的端口

在Windows Server 2008上安装了Team Foundation Server 2010之后,我需要一个简单的URL来让我们的开发人员访问他们的存储库。 TFS存储库的默认URL是http:// localhost:8080 / tfs 现在我想让子域名tfs.server.domain.com指向http:// localhost:8080 / tfs 。 而当你访问tfs.server.domain.com/repos_name时,它应该redirect到http:// localhost:8080 / tfs / repos_name 。 我怎么能在IIS7中做到这一点? 我已经尝试使用以下规则,但它不起作用。 我得到一个404。 <rewrite> <globalRules> <rule name="TFS" stopProcessing="true"> <match url="^(?:tfs/)?(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^tfs.server.domain.com$" /> </conditions> <action type="Rewrite" url="http://localhost:8080/tfs/{R:1}" /> </rule> </globalRules> </rewrite> 编辑 我实际上是通过在主机名为tfs.server.domain.com的端口80上添加一个绑定来获得这个工作。 但是使用tfs.server.domain.com,我无法使用Windows身份validation进行身份validation。 有什么我需要configuration为Windows身份validation? 您可以在这里看到一个跟踪: http : //pastebin.com/k0QrnL0m

IISconfigurationpipe理… MSDeploy和Web Farm框架的替代品?

根据我的经验,IIS Web Farm Framework和MSDeploy在pipe理服务器之间的configuration方面做得非常糟糕。 虽然Web Farm框架和MSDeploy背后的想法很棒,但我不认为这两者在完成任务方面做得很好。 在我尝试使用Web Farm Framework或MSDeploy的所有设置中,它失败了,或者至多运行非常不稳定。 通常我必须恢复到手动configuration服务器和镜像文件,这在大型设置中不是最佳的。 所以我想知道是否有任何IISconfigurationpipe理在市场上,实际上做同步文件,站点configuration,证书等体面的工作。

关于负载平衡的IIS7 Web Farm Framework 2.0基本设置问题

可能重复: 有关负载平衡的IIS7 Web Farm Framework 2.0基本安装问题 赦免基本的问题,但我似乎无法find任何基本的答案。 我正在使用Web Farm Framework 2.0build立标准服务器场。 我设置了一个控制器服务器和一个主服务器。 当我configuration我的主服务器时,我这样做了启用负载平衡。 然后我在主服务器上部署了一个基本的MVC应用程序。 我能够ping我的客户端应用程序时,我直接击中主服务器确认一切都是好的。 为了踢轮胎,我想要做的是通过我的农场访问相同的MVC应用程序。 为了清楚起见,假设我的环境如下所示:controller(IP:192.168.0.1),primary(IP:192.168.0.2)。 要通过农场访问MVC应用程序,我应该指向哪个地址? 我认为这将是192.168.0.1 / mymvcapplication但是不起作用。 请记住,绕过负载平衡器(我认为是我的控制器服务器)工作正常。 我是否缺less启用负载平衡的方面? 除了在设置主服务器时检查“启用负载平衡”checkbox之外,是否还有其他需要执行的操作(在我的控制器或主服务器上)? 任何提示将非常感谢!

IIS7中的证书信任列表

我正在尝试启用IIS7中托pipe的WebService的相互身份validation。 我有服务器端证书设置和工作,但无法弄清楚如何获得在IIS7中创build和设置的证书信任列表,以便我可以要求和validation客户端证书。 我所有的客户端证书都是由我自己的根证书签名的,因此我需要创build一个只包含我的根证书的CTL,然后让IISvalidation客户端提供的针对CTL的证书。 谁能阐明如何做到这一点? IIS6有一个用于分配CTL的UI,但在IIS7中我找不到任何类似的东西。 更新:我现在已经成功地在向导模式下使用MakeCTL创build一个友好名称的CTL。 但是,我没有adsutil支持我的IIS7框,所以通过其他post在其他地方我试图使用'netsh http添加sslcert'命令分配CTL到我的网站。 在我可以使用这个命令之前,我必须删除分配给我的站点的现有SSL证书进行服务器authentication。 然后在我的netsh命令中,指定我删除的SSL证书的指纹,加上一个appid,加上'sslctlidentifier = MyCTL sslctlstorename = CA'。 结果命令是: netsh http add sslcert ipport = 10.10.10.10:443 certhash = adfdffa988bb50736b8e58a54c1eac26ed005050 appid = {ffc3e181-e14b-4a21-b022-59fc669b09ff} sslctlidentifier = MyCTL sslctlstorename = CA (IP地址是munged),但我得到这个错误: SSL证书添加失败,错误:1312指定的login会话不存在。 它可能已经被终止了。 我相信这个错误与CTL选项有关,因为如果我删除它,它就可以工作(尽pipe当然没有CTL被分配)。 任何人都可以帮助我采取这最后一步,使这项工作? 更新01-07-2010:我从来没有解决这个与IIS 7.0,并已经迁移到IIS 7.5我们的应用程序,并给予另一个尝试。 根据Taras Chuhay的回复,我在我的testing服务器上安装了IIS6兼容性,并尝试使用adsutil.vbs(也可以在此处find)logging的步骤。 我立即遇到了这个错误: ErrNumber:-2147023584尝试设置属性的错误:SslCtlIdentifier 运行这个命令时: adsutil.vbs设置w3svc / 1 / SslCtlIdentifier MyFriendlyName 然后,我继续尝试下一个adsutil.vbs命令logging,它失败了相同的错误。 […]

在IIS的“失败请求跟踪”中未跟踪HTTP 500错误

我在IIS7中创build了一个新的站点,在该站点下面添加了一个新的应用程序。 当尝试使用位于此新应用程序下方的ASP.NET Web服务时,出现HTTP 500内部服务器错误。 我查看了事件日志,IIS日志,并试图设置“失败的请求跟踪”,但似乎没有任何跟踪。 我有它设置来检查所有内容,详细的错误logging和HTTP错误范围从400-600。 但是在FailedReqLogFiles文件夹下没有任何logging。 在这个IISconfiguration中的其他网站似乎跟踪失败的请求就好了。 我可以看到在这个站点的IIS日志中logging了HTTP GET请求,但是它们显然不是非常有用,因为它们只是显示返回500错误的请求。 我已经检查了资源pipe理器中网站文件夹的权限,并且确保匿名访问已启用,并且应用程序池标识也可以访问文件夹的内容。 有任何想法吗? 我给了关于这个问题的足够的信息吗? 预先感谢您提供的任何帮助或build议。

如何启用iis 7dynamic内容压缩?

我已经在IIS 7中启用了dynamic内容压缩function,但Fiddler显示我的dynamic页面仍然没有使用内容编码:gzip。 静态内容压缩在相同的服务器上正常工作。 不确定是否重要,但大多数dynamic页面是Coldfusion页面(Coldfusion被configuration为ISAPI扩展),我们也使用IIS URL重写模块。 这是从我的applicationhost.config。 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </dynamicTypes> <staticTypes> <add mimeType="text/*" enabled="true" /> <add mimeType="message/*" enabled="true" /> <add mimeType="application/javascript" enabled="true" /> <add mimeType="*/*" enabled="false" /> </staticTypes> </httpCompression> … <urlCompression doDynamicCompression="true" […]

将IIS6网站configuration导入IIS7

我有很多网站托pipe在IIS6上,我想迁移到IIS7。 如果迁移基本configuration(文件夹,虚拟文件​​夹,主机头),就足够了。 无论如何,configuration的很大一部分是在web.config中。 如果他们只是创build为“经典”模式的应用程序,那甚至是可以的。 我已经尝试了以下的东西: Msdeploy。 这复制了整个导演虽然,不好…试图出口iis网站的XML …没有发现给他们iis7 …任何人有一个主意?

ASP.NET应用程序吃内存。 Application / Session对象的原因是什么?

所以我们正在testing由外部公司开发的ASP.NET应用程序。 我们每秒处理大约50个请求,大约半小时后,48个工作进程(w3wp.exe)中的每个进程都高达大约400 MB并计数。 在IIS7上运行。 在干预dotTrace之后,我相当肯定这里有一个内存泄漏,但是如果不知道应用程序,很难100%确定。 当我们用这个理论面对开发人员的时候,他们在30秒之后解释了这个问题,说“像.NET一样自动处理内存”。 如果是最终的数据,.NET将会有垃圾收集48x400MB。 无论如何,我习惯于使用WinForms。 如何在ASP.NET中创build内存泄漏? (误)在.NET中使用应用程序和会话对象的唯一方法? 编辑 我已经发布了这个问题,得知在请求处理程序中持有对象的静态引用(无论是Web服务类,Web表单还是其他)都会导致“泄漏”。 也许这里不是正确的名词,但无论如何…这是我不确定的,因为我认为处理程序类在IIS的每个请求后被杀死和重新创build。 所以这样的代码: public class SomeService : IService { public static List<RequestData> _requestDataHistory = new List<RequestData>(); public void SomeRequest(RequestData data) { _requestDataHistory.Add(data); } } 将迟早会崩溃你的服务器。 也许这对大多数人来说是显而易见的,但不是对我来说:-) 如果你删除了static关键字,仍然不确定这是否会成为问题。 在每个请求之后是否处理实例 ?

为什么IIS7不压缩我的静态文件?

我试图让我的本地主机上压缩jquery.js(和所有其他静态文件,但在这里使用jQuery的例子),但出了问题。 有趣的是,当我在%SystemDrive%\ inetpub \ temp \ IIS Temporary Compressed Files \ MySiteName中查看时,我在那里看到了jquery.js文件,它的大小是24 KB。 但在浏览器中,根据Firebug的Net标签,大小为69 kb。 我试过以下: – 检查我的浏览器接受压缩。 我发现通过Firebug – 启用失败的请求跟踪在请求头中的“Accept-Encoding gzip,deflate”。 尽pipe我做了我的请求后,没有什么在%SystemDrive%\ inetpub \ logs \ FailedReqLogFiles文件夹中出现。