Asp.net Request.Url.ToString()返回嵌套域的计算机名
在服务器上部署应用程序时,我遇到了以下问题: Request.Url.ToString;返回计算机名而不是域名 例如: 而不是返回http://www.domainName.com/default.aspx 它回来了http://appserver-01/default.aspx. 注:Asp.net Request.Url.ToString()返回嵌套域的计算机名,asp.net,deployment,Asp.net,Deployment,在服务器上部署应用程序时,我遇到了以下问题: Request.Url.ToString;返回计算机名而不是域名 例如: 而不是返回http://www.domainName.com/default.aspx 它回来了http://appserver-01/default.aspx. 注: 部署前一切正常。我们遇到了类似的问题。在我们的例子中,在IISReset之后,第一个访问站点的请求是什么。如果你用这个URL点击它:那么它将继续使用它 请尝试以下操作: 1.IISReset 2.请求此URL:
部署前一切正常。我们遇到了类似的问题。在我们的例子中,在IISReset之后,第一个访问站点的请求是什么。如果你用这个URL点击它:那么它将继续使用它 请尝试以下操作: 1.IISReset 2.请求此URL:
3.看看问题是否得到解决我们也遇到过类似的问题。在我们的例子中,在IISReset之后,第一个访问站点的请求是什么。如果你用这个URL点击它:那么它将继续使用它 请尝试以下操作: 1.IISReset 2.请求此URL:
3.查看问题是否已解决您还可以查看无数其他解决url或域的方法。例如,Request.RawUrl通常会返回在地址栏中键入的内容,等等。您还可以研究无数其他方法来解析url或域。例如,Request.RawUrl通常会返回在地址栏中键入的内容,等等。好吧,在我看来,Request.Url中包含的Uri对象肯定是根据请求头中的信息构建的 有鉴于此,我怀疑进来的请求可能不是你想象的那样。尝试查看进入服务器的请求中的原始头。我会使用数据包嗅探器,我敢打赌它们反映了你看到的问题。如果是这样,问题不在web服务器上,而是在前面的某个地方 您是否在可能导致此问题的地方设置了任何转发?比如http转发是由某种域控制器完成的?您是否有任何定制的httphandler在发送请求之前对其进行处理?如果你愿意,我会去那里看看。如果你不认为你有,问你的网络管理员,如果你有一个只是为了安全 这一切都是暗箭伤人,因为我不知道你的整个计划。但这是我最好的猜测
祝你好运 好吧,深入反射器,在我看来,Request.Url中包含的Uri对象肯定是根据请求头中的信息构建的 有鉴于此,我怀疑进来的请求可能不是你想象的那样。尝试查看进入服务器的请求中的原始头。我会使用数据包嗅探器,我敢打赌它们反映了你看到的问题。如果是这样,问题不在web服务器上,而是在前面的某个地方 您是否在可能导致此问题的地方设置了任何转发?比如http转发是由某种域控制器完成的?您是否有任何定制的httphandler在发送请求之前对其进行处理?如果你愿意,我会去那里看看。如果你不认为你有,问你的网络管理员,如果你有一个只是为了安全 这一切都是暗箭伤人,因为我不知道你的整个计划。但这是我最好的猜测
祝你好运 听起来可能是以下一项或多项: 您的服务器位于防火墙和/或负载平衡器后面,这些防火墙和/或负载平衡器正在从请求中剥离Host:头 检查IIS配置-绑定列表应包括domainName.com和www.domainName.com,而不是空白的默认站点 您是从公司网络内部还是外部提出请求?网络管理员配置的内部DNS可能与外部DNS不同 将此代码作为ServerVariables.aspx暂时放在站点上的某个位置:它公开服务器配置信息,并将转储请求头:
<%@ Page Language="C#" Theme="" %>
<html>
<head>
<title>Server Variables</title>
<style>
thead th {border-bottom: 2px solid #000000; padding: 2px 8px; font-size: 130%; text-align: left;}
tbody td {border-bottom: 1px dotted #999999; padding: 2px 8px;}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>Server Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody><%
foreach (string name in Request.ServerVariables)
{
%>
<tr>
<td><pre><%= name %></pre></td>
<td><pre><%= Request.ServerVariables[name] %> </pre></td>
</tr><%
}
%>
</tbody>
</table>
</body>
</html>
听起来可能是以下一项或多项: 您的服务器位于防火墙和/或负载平衡器后面,这些防火墙和/或负载平衡器正在从请求中剥离Host:头 检查IIS配置-绑定列表应包括domainName.com和www.domainName.com,而不是空白的默认站点 您是从公司网络内部还是外部提出请求?网络管理员配置的内部DNS可能与外部DNS不同 将此代码作为ServerVariables.aspx暂时放在站点上的某个位置:它公开服务器配置信息,并将转储请求头:
<%@ Page Language="C#" Theme="" %>
<html>
<head>
<title>Server Variables</title>
<style>
thead th {border-bottom: 2px solid #000000; padding: 2px 8px; font-size: 130%; text-align: left;}
tbody td {border-bottom: 1px dotted #999999; padding: 2px 8px;}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>Server Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody><%
foreach (string name in Request.ServerVariables)
{
%>
<tr>
<td><pre><%= name %></pre></td>
<td><pre><%= Request.ServerVariables[name] %> </pre></td>
</tr><%
}
%>
</tbody>
</table>
</body>
</html>
返回此调用的值是什么
返回此调用的值是什么
主机头,它是Request.Url获取域名的地方,由代理来自外部的流量的机器重写 原始域位于标头X-Forwarded-Host中。你应该从那里读 您还可以强制代理保留主机头。如果您的代理是apachemod_代理,那么可以使用d 指示:
主机头上的ProxyPreserveHost,这是Request.Url获取域名的位置。该域名由代理来自外部的流量的计算机重写 原始域位于标头X-Forwarded-Host中。你应该从那里读 您还可以强制代理保留主机头。如果您的代理是apache mod_代理,则可以使用指令:
上的ProxyPreserveHost存在相同的问题,我使用了以下代码:
我也有同样的问题,我使用了以下代码:
您在什么环境下使用它?谁创建了URL?它的意思是Request.URL.ToString;正如罗德里戈指出的,你应该在你的问题中将嵌套的单词改为-这会使它更清楚!您在什么环境下使用它?谁创建了URL?它的意思是Request.URL.ToString;正如罗德里戈指出的,你应该在你的问题中将嵌套的单词改为-这会使它更清楚!我可以用任何解决方法解决问题,但在部署之前它是有效的!!MSDN声称RawUrl不包含域名。原始URL被定义为域信息后面的URL的一部分。在URL字符串中,原始URL为/articles/recent.aspx。原始URL包含查询字符串(如果存在)。我可以通过任何解决方法解决此问题,但它在部署之前工作!!MSDN声称RawUrl不包含域名。原始URL被定义为域信息后面的URL的一部分。在URL字符串中,原始URL为/articles/recent.aspx。原始URL包括查询字符串(如果存在)。
"http://" +
Request.ServerVariables["HTTP_HOST"] +
Request.ServerVariables["URL"]