3

在 C#.NET Web 应用程序调用的 DLL 中,如何找到 Web 应用程序的基本 url?

4

5 回答 5

12

这行得通吗?

HttpContext.Current.Request.Url

更新:

要获取基本 URL,您可以使用:

HttpContext.Current.Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped)
于 2008-10-13T01:22:50.437 回答
1

如果它是可能被非 Web 项目引用的程序集,那么您可能希望避免使用 System.Web 命名空间。

我会使用 DannySmurf 的方法。

于 2008-10-13T16:10:40.723 回答
1

正如亚历山大所说,您可以使用 HttpContext.Current.Request.Url 但如果您不想使用 http://:

HttpContext.Current.Request.Url.GetComponents(UriComponents.HostAndPort, UriFormat.Unescaped);
于 2008-11-19T22:29:33.200 回答
0

您可以使用 Assembly.GetExecutingAssembly() 来获取 DLL 的程序集对象。

然后,调用 Server.MapPath,传入该程序集的 FullPath 以获取本地根路径。

于 2008-10-13T00:41:40.940 回答
0

我想出了这个,虽然我不确定它是否是最好的解决方案:

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;
    }
}
于 2008-10-13T01:35:03.890 回答