我在 IIS 8.5 上配置了一个网站(DotNetNuke 网站),Windows Server 2012 R2 操作系统的端口为 85。我使用 访问了该网站http://localhost:85
,该网站运行良好。然后,我在 IIS 中为该网站添加了另一个与 IP 地址相关的绑定,以便我可以作为 访问它192.168.5.187:85
。但是,我无法通过 IP 地址访问它,因为我得到了一个错误页面。具体来说,我得到了一个“404 未找到错误页面”。
经过进一步调查,我发现该网站仅在一个端口 85 上运行。每当我更改绑定以指向其他端口时,该网站都无法运行(出现 404 Not Found 错误)。当前网站绑定是
IP Address Port
* 85
网站运行正常。如果我将此绑定更改为
IP Address Port
* 83 (infact anything other than 85)
网站无法运行(出现 404 Not Found 错误)
总结一下:
当我添加具有 IP 地址的绑定时,网站无法运行。(出现 404 Not Found 错误)
使用时,网站无法在 85 以外的任何端口上运行
localhost
。(出现 404 Not FOund 错误)
我很难理解这一点,所以有人能帮助我吗,因为我需要通过 IP 地址访问这个网站。
答案1
在 IIS 中添加相应绑定后,由于 DNN 支持同一安装和同一 IIS 应用程序下的多个门户,因此也必须在 DNN 上指定绑定。否则,每个请求在由 DNN 提供服务时都会以 404 错误结束。
要在 DNN 级别设置绑定,可以通过以下菜单“主机 > 站点管理”指定门户别名(绑定),然后编辑门户别名部分。要添加门户别名,请检查http://www.dnnsoftware.com/wiki/page/portal-alias
请注意,如果您添加与第一次安装 DNN 时使用的端口不同的其他端口,并且未启用“自动添加站点别名”设置,添加 IIS 绑定后,您还需要使用该端口添加新的门户别名。在您的例子中,门户别名将是“localhost:83”。这是因为虽然“自动添加站点别名”默认启用,如果您手动禁用该选项或创建了第二个门户,则不会添加自动门户别名。
还要记得清除本地缓存(菜单“工具 > 清除缓存”),因为一旦应用程序初始化,门户别名就会被缓存。添加/删除门户别名时,缓存会自动清除,但根据某些“webfarm/cachingProvider”场景可能会比较棘手。
希望这可以帮助!
答案2
对于遇到此问题的任何人,解决方案如下:
每当您将新绑定添加到网站时,PortalAlias
数据库中的表都会更新。这是由 自动完成的DNN
。当 DNN 收到网页请求时,它会domain url
根据表中存储的地址检查网页的 地址PortalAlias
,然后才处理网页。如果domain url
和 地址不匹配,则403 或 404 HTTP错误作为输出提供。
但是,有时 DNN 无法自动添加绑定。因此,如果您的网页无法在特定的 IIS 绑定上运行,请先检查PortaAlias
相应数据库中的表。
希望有帮助!
答案3
可能有另一个应用程序正在使用您尝试过的其他端口。打开命令提示符并运行“netstat -a”,然后将输出添加到您的问题中,以便我们诊断发生了什么。