我正在处理本周设置的应用程序的最终问题。我需要帮助来修改我的代码或向我们的主机解释他们需要在IIS/DNS配置中修复哪些代码,以使代码正常工作。为什么Request.Url.Authority正在返回内部路径而不是我的域
下面是代码:
public string BaseSiteUrl
{
get
{
var c = this.ControllerContext.RequestContext.HttpContext;
string baseUrl = c.Request.Url.Scheme + "://" + c.Request.Url.Authority
+ c.Request.ApplicationPath.TrimEnd('/') + '/';
return baseUrl;
}
}
我让我的控制器添加到该呼叫时,生成被保存到数据库的URL。
当我在本地机器上运行时,它工作正常。但是,它在beta服务器上运行时不起作用。
预期测试结果。在公测服务器,这是一个名为dr405
https://beta.sc-pa.com/dr405/
上测试的实际结果的应用程序。 (我改变了服务器/域名你在CAPS看到为了安全起见)
http://SERVERNAME1.GROUP1.SUBGROUP.local/dr405/
谢谢,但这根本没有帮助。我需要完全合格的Url。这会生成一个相对的Url,所以在我的第二个应用程序中,应该指向beta.sc-pa.com的href标记看起来像这样:'href =“/ dr405 // dr405/Wizard/Review/B00593.2660”' – 2012-01-03 14:05:36
您将遇到的麻烦是您需要询问运行主机名代码的服务器。但它(正确)认为它的主机名是'SERVERNAME1.GROUP1.SUBGROUP.local'。仅仅因为有一个面向公众的DNS条目将流量路由到它,并不意味着它意识到这一点。正如我所说的,可能有**许多面向公众的DNS条目指向“SERVERNAME1.GROUP1.SUBGROUP.local”。 – Yuck 2012-01-03 14:08:43
谢谢@Yuck。这听起来像一份...... ** CAPTAIN HARDCODE ** – 2012-01-03 14:12:03