如何在 IIS 中将自定义响应 Header 设置为应用程序的虚拟目录?

How to set Custom Response Header to Virtual Directory of Application in IIS?

我的 Default Web Site 中有 SMData 个应用程序。我已将 attachments 虚拟目录添加到 SMData 应用程序。现在我想为 attachment 虚拟目录设置 Content-Disposition header。我试过了,但没有成功:

SET XXXsiteNameXXX=Default Web Site
SET XXXappNameXXX=SMData

appcmd set config "%XXXsiteNameXXX%/%XXXappNameXXX%/attachments" -section:system.webServer/httpProtocol /+"customHeaders.[name='Content-Disposition',value='attachment']"

抛出错误:

Applied configuration changes to section "system.webServer/httpProtocol" for "MA CHINE/WEBROOT/APPHOST/Default Web Site/SMData/attachments" at configuration comm it path "MACHINE/WEBROOT/APPHOST/Default Web Site/SMData/attachments" ERROR ( hresult:80070003, message:Failed to commit configuration changes. The system cannot find the path specified.

我发现了问题。 我正在使用以下代码创建虚拟目录:

SET XXXtaskDocumentsPathXXX="C:/docs"
%systemroot%/system32/inetsrv/APPCMD add vdir /app.name:"%XXXsiteNameXXX%/%XXXappNameXXX%" /path:"/attachments" /physicalPath:%XXXtaskDocumentsPathXXX%

问题出在路径 / 中。创建虚拟目录时,Appcmd 不会将其转换为 \。结果 Creating web.config 失败了。我把它改成反斜杠,一切都开始工作了。