Iis web.config中相对路径的正确语法是什么?

Iis web.config中相对路径的正确语法是什么?,iis,web-config,relative-path,isapi,handlers,Iis,Web Config,Relative Path,Isapi,Handlers,我的网站结构如下: 我想在isapi应用程序的web.config中使用我的test_isapi.dll的相对路径。我尝试用以下相对路径替换C:\TestSite1\TestSite2\ISAPI\test\u ISAPI.dll,但没有成功: test\u isapi.dll ~/test\u isapi.dll ~\test\u isapi.dll ISAPI\test\u ISAPI.dll 相对路径的语法是否有误,或者这对于配置中的处理程序设置是不可能的? 当前(使用绝对路径)we

我的网站结构如下:

我想在isapi应用程序的web.config中使用我的
test_isapi.dll
的相对路径。我尝试用以下相对路径替换
C:\TestSite1\TestSite2\ISAPI\test\u ISAPI.dll
,但没有成功:

  • test\u isapi.dll
  • ~/test\u isapi.dll
  • ~\test\u isapi.dll
  • ISAPI\test\u ISAPI.dll
相对路径的语法是否有误,或者这对于配置中的处理程序设置是不可能的?

当前(使用绝对路径)web.config(TestSite1/TestSite2/ISAPI/web.config):



config您可以编写~/filepath

来使用相对路径,只需为isapi站点webconfig添加
~/test\u isapi.dll

我的解决方案是以编程方式检查并添加处理程序映射,而不是使用web.config部署设置。这样我就可以在运行时确定绝对路径并应用设置。不理想,但它完成了任务


看到这个答案:

你可以在我的问题中看到我尝试了
~/test\u isapi.dll
,但没有成功。你能更具体地说明我的例子吗?见我对@Gopalakrishnan答案的评论。此解决方案在
System.webServer
部分不起作用。正如我上面提到的,它不起作用。我知道它适用于web.config中的其他情况,但关于handlers部分或scriptProcessor属性的某些内容必须不同。请检查此链接以了解处理程序的相对路径在
System.webServer
部分中不起作用。在该部分中,您基本上是在配置web服务器本身,它没有web应用程序的概念,以便派生相对路径。路径必须是绝对的。OP的解决方案是解决这个问题的唯一方法,除非您准备将引用的文件放在应用程序根目录中,在这种情况下,它们使用路径
file.htm
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Test ISAPI"
           path="*"
           verb="*"
           modules="IsapiModule"
           scriptProcessor="C:\TestSite1\TestSite2\ISAPI\test_isapi.dll"
           resourceType="Unspecified"
           requireAccess="None"
           preCondition="bitness32" />
    </handlers>
  </system.webServer>
</configuration>