"通过LinkBut​​ton下载.msi下载不允许访问此页面的HTTP动词"

Dav*_*vid 1 c# asp.net

我有一个asp.net Web应用程序,刚刚添加了一个允许用户下载的新链接

<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" 
     PostBackUrl="/download/releases/program.msi" onclick="lnkDownload_Click" 
     ToolTip="Download">
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

但是,当我单击链接时,我收到HTTP错误405 - 不允许使用用于访问此页面的HTTP谓词.

我假设我需要更改IIS(IIS 6)中的某些设置,任何人都知道什么?

Rob*_*Rob 5

这里的PostBackURL属性asp:LinkButton是错误的选择.请参阅我链接的文档的"备注"部分:

PostBackUrl属性允许您使用LinkBut​​ton控件执行跨页面发布.将PostBackUrl属性设置为要在单击LinkBut​​ton控件时发布到的Web页面的URL.例如,指定Page2.aspx会导致包含LinkBut​​ton控件的页面发布到Page2.aspx.如果您没有为PostBackUrl属性指定值,则页面会回发给自己.

您不能/不应该使用它来触发文件下载.更合适的控制是:

<asp:HyperLink runat="server" ID="lnkDownload" runat="server" Text="Download"
     NavigateUrl="/download/releases/program.msi"></asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)

你也可以使用"普通" <a href="/download/releases/program.msi></a>.