2011-05-12 56 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>