我的生产网站的应用程序池每2小时左右回收一次。我注意到,当第一次调用该站点时,App Pool会缓存基本URL(例如www.mysite.com)。这是有道理的,因为它用于解析ASP.NET中的相对路径,例如〜/ MyFolder / MyPage.aspx,解析为:
http://www.mysite.com/MyFolder/MyPage.aspx
但是,由于可以通过我们的主机名访问该网站,例如
http://masdfg.my.provider.net
IIS认为网址是
http://masdfg.my.provider.net/MyFolder/MyPage.aspx
正如您可以映像一样,这会导致SSL以及其他问题。我怎样才能防止这种情况发生?
更新:解决方法是创建网址重定向。如果有人知道如何防止这种情况,请告诉我。
答案 0 :(得分:1)
我希望我能正确理解你的问题,但如果我没有,请告诉我。
听起来你唯一的问题是当你写回到响应的链接时,他们有时会引用错误的根URL。
我注意到你用〜/。这将解析并将整个URL写入我认为的响应。最好只使用/在写入响应链接时使用。
所以在你的例子中你会写/myfolder/mypage.aspx。然后,浏览器将解析/表示它来自站点的根地址,无论哪个可能是。
就像我说的那样,我希望我能正确地理解你的问题,如果我没有,我会道歉。
答案 1 :(得分:1)
我知道这是一个很长的镜头,但我的IIS设置遇到了类似的问题。我通过“编辑绑定”转到已经提到的“绑定”窗口来解决它。
然后我删除了所有不想要的绑定,然后添加服务器应该回答的主机名www.mydomain.com。
最后我在
编辑了windows hosts文件%windir%\System32\drivers\etc\hosts
添加行
127.0.0.1 www.mydomain.com
这可确保www.mydomain.com 始终解析为本地计算机。
以管理员身份执行iisreset.exe后,问题就结束了。
答案 2 :(得分:1)
HttpContext.Current.Request.Url不是可缓存的项目。该值来自HTTP标头的HOST值。这意味着它从请求传递到应用程序。
如果请求HOST值为masdfg.my.provider.net
此处有三种可能的修复。第一种是设置绑定,并将masdfg.my.provider.net
的任何请求转发到www.mysite.com
第二,因为您的主要问题似乎是关于SSL是获取统一通信(UC)SSL证书并在您的服务器上安装它。这将涵盖mysite.com和masdfg.my.provider.net域名。
第三种是简单地创建一个单独的IIS站点,该站点指向与第一个完全相同的生产目录。每个站点只有1个负责的域名。