相关疑难解决方法(0)

我怎样才能获得网站的基础?

我想写一个小助手方法,它返回网站的基本URL.这就是我想出的:

public static string GetSiteUrl()
{
    string url = string.Empty;
    HttpRequest request = HttpContext.Current.Request;

    if (request.IsSecureConnection)
        url = "https://";
    else
        url = "http://";

    url += request["HTTP_HOST"] + "/";

    return url;
}
Run Code Online (Sandbox Code Playgroud)

这有什么错误,你能想到吗?任何人都可以改进吗?

c# asp.net uri httprequest

175
推荐指数
7
解决办法
23万
查看次数

从ASP.NET MVC Action获取绝对URL

这可能是一个虚拟问题,但我找不到明确的指示.我在MVC3 Web应用程序中有一个POCO类,其唯一目的是管理服务器中某些文件的备份.通常,它会创建一个备份并将文件名返回给控制器,控制器会发送一封电子邮件,其中包含用于下载它的URL.这工作正常,但我无法构建要发送的绝对URL.无论我使用哪种功能,我总是得到一个相对的URL,比如/Backup/TheFile.zip,而不是http://www.somesite.com/Backup/TheFile.zip.我试过了:

VirtualPathUtility.ToAbsolute("~/Backup/SomeFile.zip");
HttpRuntime.AppDomainAppVirtualPath + "/Backup/SomeFile.zip";
Url.Content("~/Backup/SomeFile.zip");
Run Code Online (Sandbox Code Playgroud)

但它们都返回类似/Backup/SomeFile.zip的东西.任何的想法?

c# asp.net-mvc asp.net-mvc-3

70
推荐指数
3
解决办法
8万
查看次数

如何让Url.Action使用正确的端口号?

我正在使用MVC3创建一个网站,我使用剃刀语法来创建视图,它们都在azure下运行.

目前我在本地运行azure模拟器.

我在网址上有一个视图:' http:// localhost:81/Blah/Foo '.

在该视图中,我想让Url进行另一个操作.

要实现这一点,我使用:Url.Action("SomeAction","SomeController",null,this.Request.Url.Scheme)

但是,由于负载平衡,azure仿真器会执行端口号,因此会对更改进行请求.

即,当它在端口81上运行时,请求可能来自端口82.

这导致创建一个不正确的URL" http:// localhost:82/Blah/Bar ",我得到一个400,错误的主机名错误.

按照这篇文章中的信息http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/9142db8d-0f85-47a2-91f7-418bb5a0c675/我发现我可以获得正确的主机和端口号使用HttpContext.Request.Headers ["Host"].

但是我只能将主机名传递给Url.Action,如果我尝试传递主机名和端口,那么它仍会附加它认为正确的端口,所以我最终得到localhost:81:82.

编辑:我发现有人有同样的问题.他们似乎收集了我所拥有的相同信息(除了他们也包括了一个复制品),但他们没有一个有用的修复,因为我无法手动指定端口号.

http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/87c729e8-094c-4578-b9d1-9c8ff7311577/

我想一个修复就是让我自己的Url.Action重载让我指定端口.

asp.net azure asp.net-mvc-3

14
推荐指数
2
解决办法
5649
查看次数

在ASP.NET中,获取请求的基本URl的最快方法是什么?

是否有一种快速的方法来获取ASP.NET中的方案,主机,端口(仅当不是80)和应用程序路径?

据我所知,我需要组装以下部分:

  • Request.Url.Scheme
  • Request.Url.SchemeDelimiter
  • Request.Url.Authority(虽然它可能总是包括端口,即使它是80)
  • Request.ApplicationPath

那不是一个简单的财产吗?

asp.net url request

9
推荐指数
1
解决办法
8488
查看次数

标签 统计

asp.net ×3

asp.net-mvc-3 ×2

c# ×2

asp.net-mvc ×1

azure ×1

httprequest ×1

request ×1

uri ×1

url ×1