我有一个托管在 IIS 中的 WCF 服务应用程序。在启动时,它会获取一个非常昂贵的(在时间和 CPU 方面)资源用作本地缓存。
不幸的是,IIS 似乎相当定期地循环使用该进程。所以我试图更改应用程序池上的设置以确保 IIS 不会回收应用程序。到目前为止,我已经更改了以下内容:
这够了吗?我对我更改的项目有具体问题:
使用 IIS7 和 IIS7.5 标记的原因是应用程序将在两者中运行,并希望版本之间的答案相同。
图片供参考:
我正在尝试在本地主机上测试我的 ASP.Net 网站,但出现此错误:
HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.
Run Code Online (Sandbox Code Playgroud)
我在网站应用程序文件夹中有以下用户,具有完全读/写权限:
我可以尝试解决什么问题?
我刚刚为现有的 ASP.NET MVC3 站点部署了一个更新(它已经配置)并且我收到 IIS 蓝屏死机说明
HTTP 错误 500.0 - 内部服务器错误
由于发生内部服务器错误,无法显示页面。
然而; 应用程序事件日志中没有显示任何内容,我希望在其中看到条目的(更)详细描述。
我该如何诊断这个问题?
我有一台在 IIS7.5 下运行多个网站的服务器。我特别想查看一个网站的日志文件。在 C:\inetpub\logs\LogFiles 中,我看到了许多文件夹,W3SVC1 到 6。
如何找出哪个网站对应哪个文件夹?在 IIS6.0 中它曾经告诉你,但我在 IIS7.5 中的任何地方都找不到。
我知道 IIS 7+ 使用 XML 配置文件而不是元数据库。我还知道,如果我编辑web.config
给定站点的文件,IIS 会自动检测更改并实施任何相应的配置更改。
但是,这是否也适用于服务器级applicationHost.config
设置文件?(通常位于C:\windows\system32\inetsrv\config
) 具体来说,编辑此文件而不是使用 IIS 管理器或appcmd
命令行实用程序是否安全?我在文档中找不到任何说可以或不可以这样做的内容。
我很好奇,因为我需要将众多站点的绑定从一个 IP 更改为另一个 IP。进行全局搜索并替换配置文件中的 IP 地址会更快,而不是在 GUI 中手动编辑几十个站点。
对于基本 URL(不是查询字符串)中带有加号 (+) 的任何 URL,IIS7 和 IIS7.5(Windows Server 2008 和 2008 R2)似乎不会将 URL 转发到 ASP.NET 应用程序上的默认处理程序. 我开始注意到自定义 HTTP 处理程序的问题,*.html
但我对*.aspx
. IIS6 (Server 2003) 对这些相同的 URL 没有问题。
为了重现这个问题,在一个 ASP.NET 站点中,我创建了一组 ASPX 文件,这些文件使用各种名称执行简单的 Response.Write:
第三个文件是一个测试,看看 IIS7[.5] 是否将加号视为空格(就像在查询字符串中那样);情况似乎并非如此。有了所有这些文件,在进入任何 ASP.NET 处理程序之前,在 IIS6 中命中http://somehost/test_some+thing.aspx
或http://somehost/test_some%2bthing.aspx
将正常工作,但在 IIS7/IIS7.5 中命中404。在 IIS7/7.5 中是否有一些配置我缺少它来“看到”URL 中的加号而不会丢失用于确定 HTTP 处理程序的最终扩展名?
我们希望支持使用 TLS 1.1 和 1.2 的 Web 浏览器,这显然是由 Microsoft 实现的,但默认情况下是关闭的。
所以我在谷歌上搜索并发现了一些似乎每个人都在关注的页面:
http://support.microsoft.com/kb/245030
https://www.derekseaman.com/2010/06/enable-tls-12-aes-256-and-sha-256-in.html
然而!它似乎对我不起作用。我已经为 DisabledByDefault 设置了 DWORD 值,为 TLS 1.1 和 1.2 设置了启用。我可以确认我的客户端正在尝试与 TLS 1.2 通信,但服务器只响应 1.0。我已经重新启动了 IIS,但它并没有改变这种情况。
Microsoft 指出:“警告:Protocols 项下注册表项中的 DisabledByDefault 值不优先于包含 Schannel 凭据数据的 SCHANNEL_CRED 结构中定义的 grbitEnabledProtocols 值。”
嗯,这对我来说很模糊。我找不到定义或设置 SCHANNEL_CRED 的任何地方,我只能确定它是 Microsoft 库中定义的结构。这是我对为什么这不起作用的唯一猜测,但我找不到足够的信息来确定它是否是真正的问题。
在 IIS 管理器 (InetMgr) 的“操作”窗格中,在配置下应该有一个Failed Request Tracing的链接。
我没有看到...我只有“限制...”?
如何仅使用命令行在 IIS7+ 中重新启动单个网站?
与图像中带圆圈的菜单项功能相同 - 但来自命令行。
Iisreset 没有任何选项来处理单个站点,我发现了一些对 Iisweb.vbs 的古老引用,它似乎已经过时了。
我们即将在一些新服务器上部署一堆站点。我有以下关于应用程序池的问题:
每个网站有一个应用程序池似乎是可取的。这种方法有什么注意事项吗?一个应用程序池是否会占用所有 CPU、内存等...?
什么时候应该在应用程序池中允许多个工作进程?什么时候不应该?
是否可以使用私有内存限制来防止一个应用程序池干扰另一个应用程序池?将它设置得太低会导致有效请求在没有得到有效响应的情况下回收应用程序池吗?
私有和虚拟内存限制有什么区别?
是否有令人信服的理由不让每个站点运行一个应用程序池?