곡선 구국: IIS7 통합 모드에서 사이트의 URL을 가져오는 방법
5648 단어 IIS
protected void Application_Start()
{
var url=HttpContext.Current.Request.Url.ToString();
}
단지 현재 사이트의 URL을 간단하게 찾으려고 합니다.디버깅을 할 때는 모든 것이 정상적이지만, 우리가 사이트를 IIS에 발표할 때, IIS가 통합 모드에 있어야 한다면, '이 상하문에서 사용할 수 없는 요청' 의 이상을 보고하지만, 클래식 모드라면 사용할 수 없습니다.이 글은 상세한 설명이 있다http://www.cnblogs.com/dudu/archive/2011/10/14/Application_Start_Context_Request.html
일반적으로 이 문제를 해결하는 데는 두 가지 방법이 있다.
1. IIS 어플리케이션 풀을 클래식 모드로 변경
2. ApplicationStart에서 HttpContext에 액세스합니다.Current.Request 객체
그러나 일부 특수한 상황에서 통합 모드에서 ApplicationStart는 현재 사이트의 URL을 가져옵니다.
HttpContext를 호출할 수는 없지만.Current.Request 객체는 System을 통해 제공됩니다.Web.Hosting.HostingEnvironment.ApplicationID는 IIS 사이트의 배포 정보를 가져옵니다.
사이트의 귀속 정보를 통해 간접적으로 사이트의 URL을 얻다.
void Application_Start(object sender, EventArgs e)
{
//var url = HttpContext.Current.Request.Url.ToString();
var url = GetUrl();
//
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterOpenAuth();
}
private string GetUrl()
{
string path = System.Web.Hosting.HostingEnvironment.ApplicationID; // :/LM/W3SVC/3/ROOT
string url = string.Empty;
try
{
// HttpContext HttpContext
return HttpContext.Current.Request.Url.ToString();
}
catch (Exception)
{
}
// Path IIS
path = path.Replace("/LM", "").Replace("/ROOT", "");
string entPath = string.Format("IIS://localhost{0}", path);
DirectoryEntry entry = new DirectoryEntry(entPath);
if (entry.Properties.Contains("ServerBindings"))
{
var bingdings = entry.Properties["ServerBindings"].Value.ToString();// 10.188.188.13:8082:
// :
if (bingdings.EndsWith(":"))
{
bingdings = bingdings.Substring(0, bingdings.Length - 1);
}
url = "http://"+bingdings;
}
return url;
}
물론 이런 방법은 우리가 사이트 도메인 이름만 알 수 있는 상황에서만 적용되거나 우리가 처음 방문한 사이트의 초기 페이지를 확정할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(OutSystems) 로우 코드도 괜찮습니다. BATCH 처리 !! vol.2로우 코드 플랫폼 「OutSystems」를 사내에 도입·개발 서포트하고 있다. OutSystems는 WEB는 좋지만 BATCH가구나… 본고에서는, OutSystems로 BATCH 처리를 실현하는데 있어서의 궁리 포인...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.