不允许使用用于访问路径的HTTP谓词POST

我没有使用URL重写,我的应用程序正常工作,直到我尝试通过我已动态生成到LinkBut​​ton的PostBackUrl的链接命中.PDF文件甚至.TXT文件。 路径是正确的。

我已经在这里彻底研究了这个问题,大多数问题都是人们使用或不使用POST操作或URL重写,我不是。

在IIS错误看起来像:

Server Error in Application "DEFAULT WEB SITE/EVENTS"Internet Information Services 7.5 Error Summary HTTP Error 405.0 - Method Not Allowed The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used. Detailed Error Information Module StaticFileModule Notification ExecuteRequestHandler Handler StaticFile Error Code 0x80070001 Requested URL http://localhost:80/Events/EventDocs/48ea946f-e948-e011-ad73-00155d0e670b/2011.pdf Physical Path C:\projects\Events\EventDocs\48ea946f-e948-e011-ad73-00155d0e670b\2011.pdf 

动态生成要点击的url的代码在这里:

 public void DocumentsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { LinkButton LinkToDoc = (LinkButton)e.Item.FindControl("LinkToDoc"); Label FileNameLabel = (Label)e.Item.FindControl("FileNameLabel"); LinkToDoc.PostBackUrl = "~/EventDocs/" + SessionValue.EventId.ToString() + "/" + FileNameLabel.Text; LinkToDoc.Text = FileNameLabel.Text; } 

不要使用LinkBut​​ton。 使用HyperLink控件。

HyperLink控件具有可以使用的NavigateUrl属性。

当您使用LinkBut​​ton的PostBackUrl属性时,正在使用POST动词。 从文档中引用:

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

所以我建议你使用普通的超链接:

 ">foo.pdf 

您要设置的链接按钮上还有一些其他属性。 不是PostBackUrl,因为顾名思义,它是Posts!