关于c#:获取虚拟目录的链接

Getting the link for a virtual directory

我已经用C语言为JS客户机编写了一个服务器。解决方案包括restapi bl和dal。

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

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

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

其中keyImageFolder是一个虚拟目录。

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

有没有一种方法可以获取虚拟目录的URL,特别是对于每台机器?

如果JS与服务器安装在同一台计算机上,那么它真的需要完整的路径吗?

多谢


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

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

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