2

我有我的生产站点的应用程序池每 2 小时左右回收一次。我注意到当第一次调用该站点时,应用程序池会缓存基本 url(例如 www.mysite.com)。这是有道理的,因为它用于解析 ASP.NET 中的相对路径,例如 ~/MyFolder/MyPage.aspx,它被解析为:

http://www.mysite.com/MyFolder/MyPage.aspx

但是,由于可以通过我们的主机名访问该站点,例如

http://masdfg.my.provider.net

IIS 认为 url 是

http://masdfg.my.provider.net/MyFolder/MyPage.aspx

如您所见,这会导致 SSL 以及其他问题。我怎样才能防止这种情况发生?

更新:解决方法是创建一个 url 重定向。如果有人知道如何防止这种情况,请告诉我。

4

3 回答 3

1

HttpContext.Current.Request.Url 不是可缓存项。该值来自 HTTP 标头的 HOST 值。这意味着它从请求传递到应用程序。

第二个 URL 唯一需要的时间是请求的 HOST 值是否为masdfg.my.provider.net

这里有三个可能的修复。第一个是设置您的绑定并将任何请求masdfg.my.provider.net转发到www.mysite.com

第二,因为您的主要问题似乎是关于 SSL 是获取统一通信 (UC) SSL 证书并将其安装在您的服务器上。这将涵盖 mysite.com 和 masdfg.my.provider.net 域名。

第三种是简单地创建一个单独的 IIS 站点,该站点指向与第一个完全相同的生产目录。每个站点将只有 1 个它负责的域名。

于 2013-01-09T17:08:41.337 回答
1

我希望我已经正确理解了你的问题,但如果我没有,请告诉我。

听起来您遇到的唯一问题是,当您编写响应的链接时,它们有时会引用错误的根 URL。

我注意到您使用 ~/ 。这将解决并将整个 URL 写入我认为的响应。最好仅在编写响应链接时使用 /。

因此,在您的示例中,您将编写 /myfolder/mypage.aspx。然后浏览器将解析 / 以表示它来自站点的根地址,无论哪个可能。

就像我说的,我希望我已经正确理解了你的问题,如果我没有理解,我深表歉意。

于 2013-01-03T13:12:30.283 回答
1

我知道这是一个长镜头,但我的 IIS 设置也遇到了类似的问题。我通过“编辑绑定”进入已经提到的“绑定”窗口解决了这个问题。

然后我删除了所有不需要的绑定,然后添加服务器应该回答的主机名 www.mydomain.com。

最后我编辑了 Windows 主机文件

%windir%\System32\drivers\etc\hosts

添加行

127.0.0.1 www.mydomain.com

这可确保 www.mydomain.com始终解析为本地计算机。

以管理员身份执行 iisreset.exe 后,我的问题就结束了。

于 2013-01-09T14:44:00.900 回答