相关疑难解决方法(0)

在代码隐藏中获取ASP.Net页面的URL

我有一个ASP.Net页面,它将托管在几个不同的服务器上,我想获取页面的URL(甚至更好:托管页面的站点)作为在代码隐藏中使用的字符串.有任何想法吗?

asp.net

193
推荐指数
7
解决办法
34万
查看次数

在Visual Studio Windows Azure模拟器下运行ASP.NET MVC应用程序时创建正确的绝对URL

我需要在ASP.NET MVC 4应用程序中创建特定文件的绝对URL.我目前正在通过生成相对路径Url.Content,然后使用以下扩展方法来创建绝对路径.

public static string Absolute(this UrlHelper url, string relativeUrl)
{
    var request = url.RequestContext.HttpContext.Request;
    return string.Format("{0}://{1}{2}{3}", 
        (request.IsSecureConnection) ? "https" : "http", 
        request.Url.Host, 
        (request.Url.Port == 80) ? "" : ":" + request.Url.Port, 
        VirtualPathUtility.ToAbsolute(relativeUrl));
}
Run Code Online (Sandbox Code Playgroud)

在Azure模拟器下运行时,我需要创建的正确URL是,http://127.0.0.1/myfile.jpg但是当执行此代码时,端口号将返回81,因此生成的URL为http://127:0.0.1:81/myfile.jpg.但是,如果我去http://127:0.0.1:81/myfile.jpg它当然不起作用,因为Azure模拟器正在侦听端口80,而不是81.

我假设这与内置的Azure Emulator/IIS Express负载均衡器有关,但我不确定我需要对我的Url.Absolute方法做出哪些更改才能返回准确的URL.

c# asp.net asp.net-mvc azure

7
推荐指数
1
解决办法
7549
查看次数

标签 统计

asp.net ×2

asp.net-mvc ×1

azure ×1

c# ×1