通过ASP.NET下载powershell(.ps1)文件

时间:2013-12-17 15:36:47

标签: asp.net powershell web-config

我有一个.ps1文件,我想将读者链接到。不幸的是,导航到该URL只会导致404.如果内存服务,这就像.config文件一样被“阻止”,但有一种方法可以在web.config中更改该配置...但是我似乎无法通过搜索找到正确的东西。

TL; DR,我如何通过HTTP公开.ps1 powershell脚本以便它可以访问(虽然不可执行,显然)。

2 个答案:

答案 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。

将其他静态MIME类型添加到IIS(.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'}

这是可重复支持可重复发布部署/所需状态等。