如何从C#中的DLL中找到基本URL?

时间:2008-10-13 00:38:36

标签: c# .net asp.net url web-applications

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

5 个答案:

答案 0 :(得分:12)

这会有用吗?

HttpContext.Current.Request.Url

更新:

要获取可以使用的基本URL:

HttpContext.Current.Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped)

答案 1 :(得分:1)

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

我会使用DannySmurf的方法。

答案 2 :(得分:1)

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

HttpContext.Current.Request.Url.GetComponents(UriComponents.HostAndPort, UriFormat.Unescaped);

答案 3 :(得分:0)

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

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

答案 4 :(得分: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;
    }
}