2008-10-15 56 views
0

在我的asp.net mvc應用程序中,我想檢查某個url是否返回有效的響應。 因此,我發送的網址到一個方法,測試HttpWebRequest.GetResponse()Url作爲參數被攔截

在我的開發服務器(VS2008),它工作得很好。 但是,當部署在生產服務器上時,它會返回一個錯誤請求。 該方法從未命中,我的asp.net自定義錯誤頁面不使用。

什麼想法?

回答

1

對於那些在將來閱讀過這些內容的人: 我刪除了http://部分,並使用HttpUtility.UrlPathEncode對路徑進行了編碼,並放置了一條將最後一部分作爲{* uri}的路徑。 這使我可以在參數中使用/。

然後checkUri我通過添加http://重新創建uri,然後檢查此uri的主機是否是我期望的主機(在我的示例中爲request.url.host)。

然後我用創建的Uri創建httpwebrequest並檢查響應請求。

+0

正是我需要的感謝! – Webjedi 2009-05-14 23:29:00

0

也許您正在運行ASP.NET的ValidateRequest功能?您可以通過修改aspx文件中的第一行以使ValidateRequest =「false」參數禁用該頁面。

例子:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %> 

你可能不希望把它留在那個狀態,雖然,作爲請求驗證有助於防止XSS攻擊。如果您尚未使用HttpUtility.UrlEncode,也值得嘗試。