Articles of iis 7

Safari SSL证书403被禁止

我使用SSL证书(由Equifax发布)将一个Web应用程序部署到Window 2008 Server上的IIS 7(版本7.0.6000)上。 Web应用程序可通过https访问IE,Firefox和Chrome。 然而,在Safari上,我首先popup一个select一个证书,并select一个有效的,我得到以下消息: 403 – Forbidden: Access is denied. You do not have permission to view this directory or page using the credentials that you supplied. 我们在服务器上遇到了一些小问题,但是我不认为这样做只能通过SAFARI而不是其他任何浏览器。

是什么导致可信根证书颁发机构自动安装到本地机器的证书存储中?

我花了整整一天的时间,通过使用双方的HTTPS诊断我的testing服务的问题。 服务托pipe在运行Windows Server 2008 Enterprise Edition的testing服务器上的IIS 7中。 几周前,所有testing服务都停止工作,对这些服务的任何请求都以403.7“需要客户端证书”结束。 经过大量的search,我发现这篇文章描述了与Windows Server 2003类似的问题。 简而言之,问题是由本地机器证书存储中安装的可信根CA过多造成的。 服务器在相互HTTPS握手期间发送可信CA的“列表”给客户端,客户端可以根据这个列表select证书(除非IIS中的站点configuration了CTL,但是针对不同的问题 )。 问题是,列表只能有16KB,所以如果有更多的CA,他们根本不会发送到客户端。 如果使用的客户端证书由其中一个截断的CA发出,则不会发送给服务器。 之后,我检查了本地计算机的受信任根证书存储区,发现安装了超过200个受信任的根CA. 更糟糕的是,我们没有安装它们! 我在某处发现了一些信息(抱歉找不到),这些CA是通过Windows Update自动安装的。 问题:如何closures安装CA证书到我们的电脑,而不closuresWindows更新?

这个用户名是什么?它是如何创build的?

当我在网站的permissions – > security上创build了一个名为Portal的网站时,我得到了这个用户。 它的目的是什么? 从我读过的ApplicationPool在NetworkService权限下运行,但我注意到,如果我给了Portal用户完整的权限,我可以在虚拟文件夹中进行保存,而不需要模拟任何其他用户(我用来模拟pipe理员,这是一个糟糕的理念)。 所以我想我的问题是,我应该设置权限在这个Portal用户不知道它是如何来的? 似乎这个用户在创build网站的时候并没有被创build,但是当我从VS 2010发布到网站的时候这样做了。

两个应用程序池或一个站点下的根虚拟目录

这可能听起来像一个非常愚蠢的问题,所以让我先说我想达到什么,然后继续我的问题,我如何设想这样的工作。 我试图实现完全无缝部署我们的Web应用程序到IIS(不中断用户或活动连接)。 我设想这个工作的方式是有两个根虚拟目录共享同一个站点。 根目录虚拟目录我的意思是IIS在内部创build并将其分配到每个站点或Web应用程序的根目录; 除了在这里我想有两个这样的根vdirs(每个绑定到自己的应用程序池,但都引用完全相同的应用程序从不同的文件夹)。 在正常的操作过程中,其中一个vdirs将不起作用。 在进行部署时,我会将新代码放到第二个(非活动)vdir所引用的另一个文件夹中,然后将其标记为活动状态。 我想要完成的是让IIS开始发送所有新的连接(请求同一站点)到新的代码,但保持旧的还活着和活动,直到所有剩余的连接到它死了(一些,如file upload,可能会长期运行)。 一旦所有滞留的连接都死掉,旧的vdir / app池将变为非活动状态,而第二个包含新代码的连接将成为唯一活动状态。 我希望这是有道理的。 如果不是这样,我的另一个尝试就是用一个例子来解释它。 — Web Site ("mysite.com") — Root VDir#1 (IIS Internal, App Pool: AppPool#1, Virtual Path: /, Physical Path: C:\inetpub\MySite.v1084\). ACTIVE — Root VDir#2 (IIS Internal, App Pool: AppPool#2, Virtual Path: /, Physical Path: NONE). INACTIVE 在部署期间,Root VDir#2将变为活动状态,其物理path将变为C:\ inetpub \ MySite.v1085。 这将是默认的vdir IIS将服务于所有新的连接。 […]

将IIS帐户添加到IIS7中的网站

我正在尝试向我在IIS7中设置的网站添加一个FTP帐户。 这是我迄今为止所做的( 按照这些说明 ): 添加了Windows帐户“newFTP” 在IISpipe理器中find该网站,然后单击“添加FTP发布…” IP:unasigned 港口:21 选中“启用虚拟主机名称” [mydomain] .com为虚拟主机 选中“自动启动FTP站点” 选中“允许SSL” 为“SSL证书”select“未选中” 点击“下一步” 将身份validation设置为“基本” 将“允许访问:”设置为“指定用户”和“新FTP” 将权限设置为“读取”和“写入” 现在当我尝试从命令行用ftplogin时,我得到: Connected to [mydomain].com. 220 Microsoft FTP Service User ([mydomain].com:(none)): newFTP 331 Password required for newFTP. Password: 530-User cannot log in, home directory inaccessible. Win32 error: Access is denied. Error details: Authorization rules denied the access. 530 […]

如何计算Web服务器带宽使用情况

我有一台运行Server 2008的生产Web服务器(VPS)和II7,并且我被要求查看每个站点的使用情况(这个服务器上运行着大约10个站点) 我一直在寻找一个http://niknak.org/software/IIsTrafficMonitor,但它似乎只适用于IIS6(除非我已经安装了不正确的,但它在我试图IIS6服务器上工作) 我们的networking主机只有在全球范围内(即服务器的总数) 所以即时通讯之后,我可以比较网站之间的input和输出使用情况。 我不介意,只要它工作,它是一个有偿的解决scheme。

为什么我的IIS停止提供.html页面?

我突然在我的服务器上出现一个奇怪的IIS错误: There is no build provider registered for the extension '.html'. You can register one in the <compilation><buildProviders> section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'. 自从什么时候.html需要一个生成提供商? 我没有触及任何生成提供程序或处理程序映射。 没有触及.NET config目录中的默认web.config或machine.config。 Web服务器如何忘记如何提供HTML? 🙁

无法让IIS7发送cookie到IE

我有一个我创build的Web应用程序使用基本的asp.netauthentication。 validation系统工作正常代码明智,但我不能让IIS7发送到IE浏览器的cookie。 当我在Chrome或Firefox中浏览我的网站时,一切正常,我可以在标题中看到cookie。 但是,当我尝试loginIE浏览器,login成功,但没有cookie发送HTTP头。 我不知道如何进一步debugging这个问题。 IE设置为接受所有的cookies,但是IIS似乎没有向浏览器提供任何cookie。 如果我在networking服务器本身,我浏览到http:// localhost /一切工作正常,但如果我使用DNS服务器的DNS名称,我也没有得到cookies。 如果我configuration应用程序的web.config使用基于URL的身份validation,当IIS检测到它不能使用cookie时,IIS以某种方式看到它不能获取Cookie,然后使用基于URL的身份validation。 截至目前,我似乎IIS是问题,因为我有我的IE浏览器完全启用cookie,它仍然无法正常工作。 此外,即使外部用户使用我的DNS名称,相同的Web应用程序也可以在IE中的本地IIS服务器上正常工作。 但是,我不知道从哪里去。 任何帮助将不胜感激。

为什么我的应用程序在IIS7.5中需要32位模式?

我有一个运行在64位2008服务器上的.net4 web应用程序。 我只能让它运行,当我设置应用程序池启用32位应用程序为true。 所有的dll都是为.net4编译的(用corflags.exevalidation)。 我怎样才能找出为什么要启用32位是必需的? 从64位应用程序池启动时,事件日志中的错误消息 事件代码:3008事件消息:发生configuration错误。 事件时间:2011-03-16 08:55:46事件时间(UTC):2011-03-16 07:55:46事件ID:3c209480ff1c4495bede2e26924be46a事件序列:1事件发生:1事件详细信息代码:0 应用程序信息:应用程序域:已删除信任级别:完整应用程序虚拟path:已删除应用程序path:已删除机器名称:NMLABB-EXT01 进程信息:进程ID:4324进程名称:w3wp.exe帐户名称:已删除 exception信息:exceptiontypes:ConfigurationErrorsExceptionexception消息:无法加载文件或程序集“System.Data”或其某个依赖项。 试图加载格式不正确的程序。 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)在System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()在System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()在System.Web.Compilation.BuildManager。在System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException)System.Web.Compilation.BuildManager.CallPreStartInitMethods()上的GetReferencedAssemblies(CompilationSection compConfig) 无法加载文件或程序集“System.Data”或它的一个依赖项。 试图加载格式不正确的程序。 在System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,Evidence assemblySecurity,StackCrawlMark&stackMark)System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks) ,布尔forIntrospection,布尔suppressSecurityChecks)在System.Reflection.RoadAssemblyHelper System.Web.Configuration.Assembly.Load(stringassemblyString)上System.Reflection.RuntimeAssembly.InternalLoad(stringassemblyString,证据assemblySecurity,StackCrawlMark&stackMark,布尔forIntrospection) (stringassemblyName,布尔starDirective) 请求信息:请求URL:“我们的URL”请求path:“url”用户主机地址:ip-adddress用户: 通过身份validation:False身份validationtypes: 线程帐户名称:“app-pool” 线程信息:线程ID:6线程帐户名称:“app-pool”模拟:False堆栈跟踪:在System.Web.Configuration.CompilationSection.LoadAssemblyHelper(stringassemblyName,布尔starDirective)在System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory ()System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConig)System.Web.Compilation.BuildManager.CallPreStartInitMethods()System.Web.Hosting.HostingEnvironment.Initialize上System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() (ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters,PolicyLevel policyLevel,Exception appDomainCreationException) 自定义活动详情:

IIS7和URLRewrite与WordPress 3.1.1redirect失败

我在迁移到wordpress 3.1.1多站点和url重写规则时遇到了一个有趣的问题。 index.php路由,以及ms-files.php?file =规则在整个板上都失败了。 当你通过index.php发送永久链接时,ROOT站点具有可以工作的function。 (编辑:这在networking站点也很普遍,从我所看到的规则7是这里失败的罪魁祸首。) 媒体(规则2)的规则也失败了。 生成的链接正在拉回一个“哎呀不能find”404风格的错误。 一切看起来都正确的规则部分,如下所示: <rule name="WordPress Rule 1" stopProcessing="true"> <match url="^index\.php$" ignoreCase="false" /> <action type="None" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" /> <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> </rule> <rule name="WordPress Rule […]