Iis web.config中相对路径的正确语法是什么?
我的网站结构如下: 我想在isapi应用程序的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
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
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>