根据我的经验,IIS Web Farm Framework和MSDeploy在pipe理服务器之间的configuration方面做得非常糟糕。 虽然Web Farm框架和MSDeploy背后的想法很棒,但我不认为这两者在完成任务方面做得很好。 在我尝试使用Web Farm Framework或MSDeploy的所有设置中,它失败了,或者至多运行非常不稳定。 通常我必须恢复到手动configuration服务器和镜像文件,这在大型设置中不是最佳的。 所以我想知道是否有任何IISconfigurationpipe理在市场上,实际上做同步文件,站点configuration,证书等体面的工作。
IIS 7.5已经停止logging单个站点的所有stream量(同一个盒子上有几十个stream量),我不知道为什么。 它在上周五的正午的时候停止了采伐,此后一无所获。 所有其他网站的日志文件都是预期的。 到目前为止我已经检查过; 日志loggingconfiguration与其他站点相同(W3Clogin到一个目录,每天一个文件) 日志文件夹上的NTFS ACL是正常的(inheritance父项,与其他日志文件夹相同) 禁用和重新启用日志logging 停止并重新启动该网站 我没有重新启动IIS或服务器,但昨天晚上(星期天)重新启动了Windows更新,即这个问题在这些更新之前进行更新并重新启动。 有没有什么办法可以debugging日志过程本身? 所有试图searchdebugging和日志logging的东西只是让我有关debugging请求的东西,而不是日志logging引擎本身。
当我configurationIIS在端口1414上运行Web站点时,出现以下错误: ————————— Internet信息服务(IIS)pipe理器 —————————进程无法访问该文件,因为它正在被另一个进程使用。 (从HRESULTexception:0x80070020) 但是,根据netstat的端口没有被使用。 除IIS之外,我写了一个testing程序(只是打开端口并testing它): TcpListener tcpListener; tcpListener = new TcpListener(IPAddress.Any, port); try { tcpListener.Start(); Console.WriteLine("Press \"q\" key to quit."); ConsoleKeyInfo key; do { key = Console.ReadKey(); } while (key.KeyChar != 'q'); } catch (Exception ex) { Console.WriteLine(ex.Message); } tcpListener.Stop(); 结果是一个例外,下面的ex.Message: 尝试以访问权限禁止的方式访问套接字 端口可用,但其“访问权限”不允许我访问。 几次重新启动后,这仍然存在。 据我所知,端口不被保留或正在使用,当IIS说它正在使用,netstat和我的testing程序说,它不是,我的testing程序收到错误,我不允许访问端口。 testing程序运行提升。 IIS站点正在运行MQSeries,但由于此问题,MQ侦听器也无法在端口1414上启动。 快速search我的registry发现没有什么有趣的港口1414。 什么是套接字访问权限,如何纠正我的访问权限? 更新:端口1414的netstat输出。 C:\ Windows \ […]
昨天,我们的构build服务器(运行Windows Server 2012)的IIS开始拒绝我们客户的证书。 证书使用我们自己的自签名CA证书进行签名,该证书已添加到受信任的根证书颁发机构(本地机器)。 直到昨天,这一直在完美地工作。 我拼命试图找出可能导致这种情况的原因。 我在事件查看器中看不到Schannel错误或警告。 然而,在对服务器运行openssl之后,我发现了一些可疑的东西。 它看起来像IIS没有发送一个可信的客户端证书颁发机构列表中的一个CA。 日志看起来像这样: CONNECTED(00000144) depth=0 CN = Localhost verify error:num=18:self signed certificate verify return:1 depth=0 CN = Localhost verify return:1 — Certificate chain 0 s:/CN=Localhost i:/CN=Localhost — Server certificate —–BEGIN CERTIFICATE—– MIIC+zCCAeOgAwIBAgIQOkacw1RkE4tI9+HnyEXFvzANBgkqhkiG9w0BAQsFADAU MRIwEAYDVQQDEwlMb2NhbGhvc3QwHhcNMTMwODA1MDgwOTU1WhcNMzkxMjMxMjM1 OTU5WjAUMRIwEAYDVQQDEwlMb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQC/kc5BLMcmuNoZe8jkrJQt/kZFD7EnVOtvEEJt0dZJG008TqXD MdXnybBWPCbvQIFoxREY6wjPExcU39SzbCWLGV99Z+eR0zFkOpK3SSppe9fulkP7 ktiDWTSkgJUx1/EpHeJHL1hy7YKRFYOtPlewZYjaklh/wND5F88mOri/lEoENpWO 0fLrJS+Nnizeti7LEzstNtU7+AH4h6njCujrQwjwdCr1QTggjLj3iOy7fpUqYwKe mNGNIAR8XI06JzYAFDpcdo4PMZScNfd0cqcMIHJuWUoaciW9qwrbHWyr1B3hBCX0 luQSF4uHVbT+8yOI4fOWL4PTL/6ZNEfl4WrxAgMBAAGjSTBHMEUGA1UdAQQ+MDyA EHhoR/6NVn2yfadGy1PvZ26hFjAUMRIwEAYDVQQDEwlMb2NhbGhvc3SCEDpGnMNU ZBOLSPfh58hFxb8wDQYJKoZIhvcNAQELBQADggEBAIujtVAr3UvG7dB55SBgQP5p AiOum0DM9xULarl+Wz/GdTvdK65PcUB34DlG8pEhz5nRsX5I/nZvLF/7U5OCICp2 Gnvbm2jLYnlacB16+ds/4cgG65a/CddSdVyRIYa2YdGXZGiJ6zTkEQWEH4tXmkO+ InzHsBEVO1MT1nAfkZp6MzgEbCv8Xus3QIxdnJZZYHMzXcD+48oQEfP5BhHXW/iN MlNsuN8wwwpS61r2g9Bu8AhMcbnvoMNdYbBtPC5+ltlOQK0RNNTcqOr4kJj/BwO3 fGS8/lh9FTZFq8c4ES94hoEu4szUfA4jkTvt9SWossOBPehhIWKUgx5MIdC6Hgc= —–END […]
在Windows 2012服务器上使用Web部署,如果部署包含充满用户生成内容的文件夹,则将其从.pubxml文件中的发布中排除: <ExcludeFoldersFromDeployment>somefoldername</ExcludeFoldersFromDeployment> 如果您使用“ 删除目标位置上的其他文件”选项进行部署,则此文件夹中的文件仍会从实时服务器中删除。 <SkipExtraFilesOnServer>False</SkipExtraFilesOnServer> 有什么方法可以使部署过程(包括清理活动服务器)忽略指定的文件夹吗? 我想知道发布过程也会从服务器中删除已删除或已修改的文件,但是删除用户生成的数据的整个文件夹显然是一个问题!
我在IIS7中创build了一个新的站点,在该站点下面添加了一个新的应用程序。 当尝试使用位于此新应用程序下方的ASP.NET Web服务时,出现HTTP 500内部服务器错误。 我查看了事件日志,IIS日志,并试图设置“失败的请求跟踪”,但似乎没有任何跟踪。 我有它设置来检查所有内容,详细的错误logging和HTTP错误范围从400-600。 但是在FailedReqLogFiles文件夹下没有任何logging。 在这个IISconfiguration中的其他网站似乎跟踪失败的请求就好了。 我可以看到在这个站点的IIS日志中logging了HTTP GET请求,但是它们显然不是非常有用,因为它们只是显示返回500错误的请求。 我已经检查了资源pipe理器中网站文件夹的权限,并且确保匿名访问已启用,并且应用程序池标识也可以访问文件夹的内容。 有任何想法吗? 我给了关于这个问题的足够的信息吗? 预先感谢您提供的任何帮助或build议。
我已经在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" […]
问题:用户连接到计算机上的服务,例如IIS网站或SQL Server数据库。 网站或数据库需要访问networking资源,如文件共享(最常见)或不同服务器上的数据库。 权限被拒绝。 这是因为服务运行的用户首先没有networking权限,或者如果是,则没有访问远程资源的权限。 我一遍又一遍地遇到这个问题,厌倦了没有一个真正的坚实的方式来处理它。 以下是我所知道的一些解决方法: 运行IIS作为被授予高权限的自定义创build的域用户 如果权限一次被授予一个文件共享,那么每次我想从一个新的共享中读取数据时,我都不得不要求networkingpipe理员为我添加它。 最终,许多网站阅读了很多股票,这将变得非常复杂。 如果权限只是打开了广泛的用户访问我们的域中的任何文件共享,那么这似乎是一个不必要的安全表面区域呈现。 这也适用于在IIS上运行的所有站点,而不仅仅是需要访问的选定站点或虚拟目录,还有一个表面区域问题。 做同样的事情,但使用应用程序池或单独设置凭据 不需要像特定用户一样运行整个IIS实例:每个站点,应用程序和文件夹都可以设置为在特定的应用程序池或手动select的凭据集下运行。 这解决了表面积问题的一小部分,但是并没有真正解决关于pipe理许可粒度的问题,并且在许多资源上这样做。 仍然使用IUSR帐户,但给它networking权限,并在远程资源(不是域用户,本地用户)上设置相同的用户名 这也有它的问题。 例如,有一个文件共享我正在使用,我有充分的权利来共享,但我无法login到机器。 所以我必须find正确的pipe理员,并要求他为我做。 任何时候都必须改变,这是对pipe理员的另一个要求。 允许IIS用户以匿名方式连接,但将用于匿名访问的帐户设置为高权限帐户 这比给予IIS IUSR完全权限还要差,因为这意味着我的网站首先不能使用任何types的安全性。 使用Kerberos进行连接,然后进行委托 这原则上听起来不错,但有各种各样的问题。 首先,如果您使用的是虚拟网站,而您连接到网站的域名不是基本计算机名称(正如我们经常使用的那样),则必须使用Microsoft的Web服务器在Web服务器上设置服务主体名称SetSPN实用程序。 这很复杂,显然很容易出错。 此外,您必须要求您的networking/域pipe理员更改Web服务器和域帐户的安全策略,以使其“受信任进行委派”。 如果你没有完全正确地得到一切,突然你想要的Kerberos身份validation是NTLM,而你只能模拟而不是委托,因此不能以用户的身份到达networking。 此外,此方法可能会有问题,因为有时您需要网站或数据库具有连接用户不具有的权限。 创build一个服务或COM +应用程序来获取网站的资源 服务和COM +包使用他们自己的一组凭据运行。 以高特权用户身份运行是可以的,因为他们可以做自己的安全性并拒绝不合法的请求,将控制权交给应用程序开发人员,而不是networkingpipe理员。 问题:我正在使用一个COM +程序包,它在Windows Server 2000上完全实现这一function,可将高度敏感的图像传送到安全的Web应用程序。 我尝试将网站移动到Windows Server 2003,并突然被拒绝实例化COM +对象的权限,很可能是registry权限。 我徘徊了很多,并没有解决问题,部分原因是我不愿意给予IUSR帐户完整的registry权限。 这看起来像只是作为一个高权限用户运行IIS一样的坏习惯。 注意:这其实很简单。 在您select的编程语言中,您可以使用返回所需对象实例(例如ADODB.Connection)的函数创build一个类,然后构build一个dll,将其注册为COM +对象。 在您的Web服务器端代码中,您将创build该类的一个实例并使用该函数,并且由于它在不同的安全上下文中运行,因此对networking资源的调用将起作用。 将驱动器号映射到共享 这在理论上是可行的,但在我看来,这不是一个好的长期战略。 尽pipe可以使用特定凭证创build映射,而这可以由networkingpipe理员完成,但这也意味着可能会有太多的共享驱动器(小粒度),或者授予整个文件太多的权限服务器(大粒度)。 此外,我还没有想出如何映射驱动器,使IUSR获得驱动器。 映射一个驱动器是针对当前用户的,我不知道IUSR账户密码是否以它的身份login并创build映射。 将本地资源移到Web服务器/数据库 […]
我有很多网站托pipe在IIS6上,我想迁移到IIS7。 如果迁移基本configuration(文件夹,虚拟文件夹,主机头),就足够了。 无论如何,configuration的很大一部分是在web.config中。 如果他们只是创build为“经典”模式的应用程序,那甚至是可以的。 我已经尝试了以下的东西: Msdeploy。 这复制了整个导演虽然,不好…试图出口iis网站的XML …没有发现给他们iis7 …任何人有一个主意?
在加载testingASP.NET应用程序时,我们发现页面在重负载下需要20-30秒。 我们怀疑这是因为页面正在等待数据库调用或Web服务。 是否有一个特定的perfmon计数器可以识别这种Web服务器上的瓶颈? CPU,内存和磁盘是正常的。 或者我们必须使用perfmon以外的工具来追踪这个瓶颈?