0

我在这里查看了其他一些带有 Windows 身份验证帖子的 IIS 反向代理,它们似乎不是我想要做的。希望有人能够帮助或发现我没有做错或做错的事情。

我有一个服务器,它有一个在端口 80 上运行的网站,我需要在其上展示许多其他 Web 应用程序。我无法创建新的主机名,所以我在指向我的 Web 应用程序的站点中创建了一个虚拟目录,但是根站点正在使用 .net2.0 应用程序池,它必须保持为 .net2.0 而我的 ASP.NET MVC 应用程序都需要4.0 应用程序池。根据 web.config 继承问题,这是行不通的,我无法更改根中的 web.config 以忽略对子 web.configs 的传播 - 到目前为止?;-)

长话短说,我现在在我的 80 端口站点中有一个虚拟目录,它充当端口 81 上另一个站点的反向代理,这对于匿名连接来说工作得很好。我已经用一个简单的 HTML 页面对其进行了测试,我可以访问它,并且 URL 重写正在 HTML 页面中的链接上工作,到目前为止一切都很好。

现在我需要在端口 81 站点上启用 Windows 身份验证,所以我按照类似于 MSDN 站点上这些链接中的说明为我正在使用的域帐户 (DOMAIN\testaccount) 和其他 IIS 配置配置 SPN:-

链接 1 链接 2

问题是我现在得到的只是旧的错误消息:-

访问被拒绝。说明:访问处理此请求所需的资源时出错。服务器可能未配置为访问请求的 URL。

错误消息 401.2.:未经授权:由于服务器配置,登录失败。根据您提供的凭据和 Web 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。请与 Web 服务器的管理员联系以获得更多帮助。

-------------------------------------------------- ------------------ 版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.34280

我尝试创建一个测试 aspx 页面,该页面仅将服务器变量输出到响应,但即使这样也不起作用。

我找不到其他可以尝试的东西,最初我认为我必须对 Kerberos 进行排序以将详细信息从虚拟目录传递到端口 81 上的站点,但 MSDN 帖子说这不是必需的,只是 SPN 的。

有人有什么想法吗?

4

1 回答 1

1

事实证明这是非常简单的事情,我因为不检查而变得愚蠢!:-)

我花了几天时间试图弄清楚为什么这不起作用,不知道为什么我没有早点尝试,但是我将它运行的应用程序池更改为使用 .net2.0,然后我的测试 aspx 页面工作了!?!

如果您单击根服务器节点本身,则在 IIS 管理器中显示,在“ISAPI 和 CGI​​ 限制”功能设置下,.net4.0 DLL 被设置为“不允许”,但 .net2.0 DLL 被“允许”!我刚刚启用了 .net4.0 更改了应用程序池,然后它就可以工作了。

于 2016-04-25T09:55:59.743 回答