我有一个.ps1
文件,我想将读者链接到。不幸的是,导航到该URL只会导致404.如果内存服务,这就像.config
文件一样被“阻止”,但有一种方法可以在web.config
中更改该配置...但是我似乎无法通过搜索找到正确的东西。
TL; DR,我如何通过HTTP公开.ps1
powershell脚本以便它可以访问(虽然不可执行,显然)。
答案 0 :(得分:6)
我认为您需要为.ps1添加MIME类型。在IIS管理器中,选择树上的服务器节点,然后单击“MIME类型”。然后单击右侧面板上的“添加...”。对于扩展程序,请将其设置为.ps1
,并将MIME类型设置为text/plain
。
现在IIS应该提供.ps1文件。
您可以使用MIME类型application/octet-stream
代替text/plain
。使用前者将导致大多数浏览器下载它而不是尝试显示它。
您也可以为特定的Web应用程序或虚拟目录执行此操作。如果您通过web.config执行此操作,它将如下所示:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".ps1" mimeType="text/plain" /><!-- or application/octet-stream -->
</staticContent>
</system.webServer>
</configuration>
答案 1 :(得分:0)
我们使用相同的策略与IIS静态站点资源持续集成 - 执行此操作的powershell如下所示,以防其他人希望为CI编写此更改脚本。在询问未列出或非标准的文件类型( sql,ps1等)时,我们收到了HTTP 404。
.ps1
)Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/staticContent" -name "." -AtElement @{fileExtension='.ps1'}
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/staticContent" -name "." -value @{fileExtension='.ps1';mimeType='text/plain'}
这是可重复支持可重复发布部署/所需状态等。