获取虚拟目录的链接

时间:2015-04-13 14:24:09

标签: c# asp.net

我在C#中为JS客户端编写了一个服务器。 解决方案包括restApi BL和DAL。

BL为存储在服务器上的虚拟目录中的图像创建链接。 JS和服务器代码存储在同一目录中。

当我构建链接的字符串时,我使用以下代码行:

string keyImageName = Settings.Default.ServerUrl  + 
    Settings.Default.KeyImagesFolder + relatedFinding.KeyImagePath;`

其中KeyImageFolder是虚拟目录。

它工作正常,但我的问题是该网站有多个亚马逊实例,每个地理区域一个,所以每次部署时,我都需要更改设置中的IP。这很烦人。

有没有办法获取虚拟目录的网址,特别是每台机器?

如果JS安装在与服务器相同的机器上,它真的需要一个完整的路径吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

首先,您需要获取要为其生成网址的文件或目录的物理路径。这可以使用Request.ApplicationPath在页面对象中完成。

接下来,可以使用Server.MapPath函数将此路径转换为url路径。如果在IIS中有多个网站绑定到同一路径,则会考虑这一点。

var physicalPath = Path.Combine(Request.ApplicationPath, Settings.Default.KeyImagesFolder, relatedFinding.KeyImagePath);
var resourceUrl = Server.MapPath(physicalPath);