在 Win2k3 中,我曾经httpcfg告诉 IIS 侦听服务器上的特定 IP 地址。我想在另一个 IP 地址的端口 80 上使用 VisualSVN 服务器运行 Apache,但 IIS7 默认绑定到所有 IP 地址。
IIS7 的哪个实用程序控制 IIS7 绑定?
我的站点(测试环境)中有一个虚拟目录。它是一个 UNC 共享,也用作公共 FTP。
它被配置为作为域管理员帐户连接,并且“测试设置”表示一切似乎都在工作。但是,当我尝试连接到它时,我得到:
500 - “由于访问被拒绝,无法开始监视 \INTRANET\FTP\test\web.config 上的更改”
这是一个 ASP.NET YSOD。我不知道为什么 ASP.NET 会参与进来,因为它是我请求的静态 .jpg 文件。
我尝试打开失败的请求跟踪,这是特定错误:
如果我将“物理路径登录类型”从 ClearText 更改为 Network。我收到以下 IIS 错误:
HTTP 错误 500.19 - 内部服务器
错误无法访问请求的页面,因为该页面的相关配置数据无效。
详细的错误信息
- 模块IIS Web 核心
- 通知开始请求
- 处理程序尚未确定
- 错误代码
0x80070005- Config Error由于权限不足无法读取配置文件
- 配置文件
\\?\UNC\INTRANET\FTP\test\web.config请求的 URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg
物理路径
\\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg登录方法尚未确定
- 登录用户尚未确定
- 失败请求跟踪日志目录
C:\inetpub\logs\FailedReqLogFiles
奇怪的是,这不会生成失败的请求日志——我已将失败的请求跟踪设置为跟踪错误代码为 400-999 的错误。
另外值得注意的是,如果我从 IIS …
关于此选项有很多讨论,大多数人认为“它提高了安全性”、“它可以保护您免受 MiTM 攻击/DNS 欺骗”等,但我不明白这是怎么回事。ssh_config(5)说这个选项
允许 ssh 检测主机密钥是否因 DNS 欺骗而更改
但它仍然显得模糊甚至误导,因为
由于文档含糊不清,其他人甚至似乎认为CheckHostIP=yes不会让您连接到已更改 IP 的主机(即它的 IP 与已记录的 IP 不同known_hosts),这是完全不真实的,位于至少据我自己的测试可以理解。
CheckHostIP=yes当我(默认)连接到主机密钥已存储在 中known_hosts但已更改其 IP 的远程服务器时,连接正常进行,但我收到警告:
永久添加 IP 地址的 ECDSA 主机密钥 [......]
另外,还会在 中添加一个新行known_hosts,其中包含服务器的主机密钥(未更改)和新的 IP 地址(不同)。如果主机稍后再次更改其 IP,则下次我使用 来连接它时CheckHostIP=yes,将附加一个新行,known_hosts依此类推。
如果我连接CheckHostIP=no到已更改其 IP 地址的服务器,连接将继续(这也是 发生的情况CheckHostIP=yes),但这次没有警告或在 中附加新行known_hosts。
yes因此,和之间的唯一区别no似乎是连接时的简单一行警告,以及known_hosts每次主机更改其 IP 时记录新地址(有效地保留服务器不同 IP 的历史记录)。
如果是这样的话,我什至不确定这CheckHostIP=yes比 …
我的 IIS7 有这个问题:
C:\Users\vtortola.dk>%windir%\system32\inetsrv\appcmd.exe list site
ERROR ( message:Configuration error
Filename: redirection.config
Line Number: 0
Description: Cannot read configuration file due to insufficient permissions
. )
Run Code Online (Sandbox Code Playgroud)
每次我尝试将 ASP.NET 应用程序发布到我的计算机时,我都无法使用它,因为 IIS 无法读取配置文件,我不知道如何解决这个问题。
我在 找到了该文件C:\Windows\System32\inetsrv\config,其权限适用于:
这样对吗?可能有什么问题?
我试过:
runas /noprofile /user:"IIS APPPOOL\MyAppPool" cmd.exe
Run Code Online (Sandbox Code Playgroud)
但它要求我输入密码。我的管理员密码在那里不起作用。
我得到:
RUNAS 错误:无法获取用户密码
这是 Server 2022 Standard 21H2 的全新安装。我正在尝试配置 SMTP 服务器,以便客户端应用程序可以在内部发送电子邮件。
当我打开 IIS 6.0 管理器并右键单击 SMTP 虚拟服务器时,通常会生成以下错误:
如果我尝试得足够频繁,我就可以进入并配置设置。尽管每当我尝试通过 SMTP 服务器发送邮件时,SMTP 服务都会停止并记录以下事件:

谁能建议我从哪里开始解决这个问题?
我正在尝试将两个服务器变量作为 URL 重写条件的一部分进行比较。但首先,一些背景...
在 IIS 中,如果您请求http://www.example.com/foo并且foo是一个目录,则 IIS 会将 302“移动对象”重定向http://www.example.com/foo/作为“礼貌重定向”(Source)发送到。
如果您使用 IIS+ARR 作为具有 SSL 卸载的反向代理,后端 IIS 节点接收的请求是通过 http 而不是 https。
结合这两种行为,IIS 的礼貌重定向会丢弃 SSL。礼貌重定向使用与 IIS 收到的请求(源)相同的方案,在这种情况下是 http 而不是 https。
我想创建一个出站重写规则,将传入 URL 与传出 Location 标头进行比较,并在这种情况下将其从 http 重写为 https:
{RESPONSE_STATUS}是 302{HTTPS}is "on"以上都是在前提条件下处理的。棘手的部分是最后一点:
下面是我到目前为止的代码。前提条件和标头重写都可以正常工作。但是,该条件会导致 500 错误(URL 重写模块错误),大概是因为我{REQUEST_URI}在模式中使用。我尝试将条件分成两个并使用捕获组,但这也不起作用。有任何想法吗?
<rule name="Fix: Courtesy Redirect + SSL Offloading = …Run Code Online (Sandbox Code Playgroud) 我们有一个可通过 Internet 访问的开发服务器,但受 IP 限制,因此这里的安全性只是允许我们重现实时环境的一种方式,而不是试图确保安全。顶级域,我们称之为dev.com,未使用,但开发人员将每个站点设置在他们自己的特定子域中。所以我们可以说有site1.com,site2.com并且site3.com,然后开发商george和nico将有完整的URL,如:
我最初认为通配符自签名证书可以,但后来发现*.dev.com仅适用于something.dev.com子域而不适用于子子域。我决定按照此答案中的说明进行操作。当我使用:
DNS.1 = www.site2.com.nico.dev.com
DNS.2 = www.site1.com.george.dev.com
Run Code Online (Sandbox Code Playgroud)
一切正常,但不幸的是,许多站点有很多开发人员,因此这里有超过 100 个条目DNS.x。我想知道是否可以在[ alternate_names ]我的openssl.cnf. 我尝试了以下方法:
DNS.1 = dev.com
DNS.2 = www.site1.com.george.dev.com
DNS.3 = *.*.*.nico.dev.com
Run Code Online (Sandbox Code Playgroud)
虽然DNS.2有效,DNS.3但没有,NET::ERR_CERT_COMMON_NAME_INVALID在 Chrome 中给我错误。
有没有办法做到这一点,还是我必须生成一个很长的DNS.x条目列表来涵盖所有站点?
我听说通过创建我自己的 CA 这将是可能的。我遵循了这个答案的重要说明。用我自己的CA完好我创建了一个证书DNS.1一样的通用名称和DNS.2和DNS.3的,象这样的通配符:
DNS.1 = …Run Code Online (Sandbox Code Playgroud)