【发布时间】:2010-09-16 19:41:24
【问题描述】:
在 C#.NET Web 应用程序调用的 DLL 中,如何找到 Web 应用程序的基本 url?
【问题讨论】:
-
您能否发布一个完整 URL 的示例以及您想要的内容?
标签: c# .net asp.net url web-applications
在 C#.NET Web 应用程序调用的 DLL 中,如何找到 Web 应用程序的基本 url?
【问题讨论】:
标签: c# .net asp.net url web-applications
您可以使用 Assembly.GetExecutingAssembly() 来获取 DLL 的程序集对象。
然后,调用 Server.MapPath,传入该程序集的 FullPath 以获取本地根路径。
【讨论】:
这行得通吗?
HttpContext.Current.Request.Url
更新:
要获取您可以使用的基本 URL:
HttpContext.Current.Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped)
【讨论】:
我想出了这个,虽然我不确定它是否是最好的解决方案:
string _baseUrl = String.Empty;
HttpContext httpContext = HttpContext.Current;
if (httpContext != null)
{
_baseURL = "http://" + HttpContext.Current.Request.Url.Host;
if (!HttpContext.Current.Request.Url.IsDefaultPort)
{
_baseURL += ":" + HttpContext.Current.Request.Url.Port;
}
}
【讨论】:
如果它是一个可能被非 Web 项目引用的程序集,那么您可能希望避免使用 System.Web 命名空间。
我会使用 DannySmurf 的方法。
【讨论】:
正如 Alexander 所说,您可以使用 HttpContext.Current.Request.Url 但如果您不想使用 http://:
HttpContext.Current.Request.Url.GetComponents(UriComponents.HostAndPort, UriFormat.Unescaped);
【讨论】: