我在C#中为JS客户端编写了一个服务器。 解决方案包括restApi BL和DAL。
BL为存储在服务器上的虚拟目录中的图像创建链接。 JS和服务器代码存储在同一目录中。
当我构建链接的字符串时,我使用以下代码行:
string keyImageName = Settings.Default.ServerUrl +
Settings.Default.KeyImagesFolder + relatedFinding.KeyImagePath;`
其中KeyImageFolder是虚拟目录。
它工作正常,但我的问题是该网站有多个亚马逊实例,每个地理区域一个,所以每次部署时,我都需要更改设置中的IP。这很烦人。
有没有办法获取虚拟目录的网址,特别是每台机器?
如果JS安装在与服务器相同的机器上,它真的需要一个完整的路径吗?
非常感谢
答案 0 :(得分:1)
首先,您需要获取要为其生成网址的文件或目录的物理路径。这可以使用Request.ApplicationPath在页面对象中完成。
接下来,可以使用Server.MapPath函数将此路径转换为url路径。如果在IIS中有多个网站绑定到同一路径,则会考虑这一点。
var physicalPath = Path.Combine(Request.ApplicationPath, Settings.Default.KeyImagesFolder, relatedFinding.KeyImagePath);
var resourceUrl = Server.MapPath(physicalPath);