2011-05-12 54 views
1

伊夫“用来访问本页面的HTTP动词是不允许的”上一个.msi下载有一个asp.net web应用程序和刚添加迈上了一个新链接,允许用户下载通过一个LinkBut​​ton

<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" 
    PostBackUrl="/download/releases/program.msi" onclick="lnkDownload_Click" 
    ToolTip="Download"> 
</asp:LinkButton> 

但是,当我点击链接时,我得到 HTTP错误405 - 用于访问此页面的HTTP动词是不允许的。

我想我需要改变一些设置在IIS(IIS 6)任何一个知道什么?

回答

2

该页面发布到MSI,在IIS的Handlers部分将不允许使用该页面。尝试使用HTML链接(<a>标签),而不是使用LinkBut​​ton,它会对.msi文件执行GET操作。

或者,如果您需要POST,请适当配置您的IIS。

5

PostBackURL属性在这里是错误的选择。见我挂了文档中的“备注”部分:

PostBackUrl属性允许您使用LinkBut​​ton控件执行跨页的文章。将PostBackUrl属性设置为要在单击LinkBut​​ton控件时发布到的网页的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> 

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