2015-11-02 65 views
4

我必須調試已離開公司的某人的舊VB.NET 2.0代碼。我們有一個生產系統(我們稱之爲http://prod)和一個測試系統(http://test)。兩者幾乎都是類似的,包括文檔庫。在製作文檔時,所有顯示在底部的超鏈接都沒問題(這意味着他們會說類似http://prod/download.ashx?id= {GUID})。VB.NET 2.0:代碼中的URL來自哪裏?

但是在測試中它是相同的(http://prod/download.ashx?id= {GUID}),即使它應該是http://test/download.ashx?id= {GUID}。

後調試的時間我已經發現的代碼中的相關行:

html += "<td><a href='" + HttpContext.Current.Request.Url.AbsoluteUri.Replace(HttpContext.Current.Request.Url.PathAndQuery, "/") + "int/download.ashx?id=" + row.Item(0).ToString() + "' target='_blank' class='" + row.Item(3).ToString() + "'>" + row.Item(1).ToString() + "</a>" + privat + "</td><td>" + row.Item(2).ToString() + "</td>" 

望着html這說明即

"<table class='table_dataTable'><thead><tr><td>Name</td><td>Jahr</td></tr></thead><tbody><tr><td><a href='http://prod/int/download.ashx?id=4d280886-db88-4b25-98d8-cf95a685d4a4' target='_blank' class='doc'>Document for managers</a></td><td>2014</td>" 

所以我想,在這是否來自不正確?我可能發現編碼相關的部分,但我不知道,現在做什麼,如果分別我對這個?:

Public Class download : Implements IHttpHandler, IReadOnlySessionState 
    Dim debug As String = "" 
    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
     Dim fehler As String = "" 
     Try 
      ' Get the file name from the query string 
      Dim queryFile As String = context.Request.QueryString("id") 
      debug += "id=" + queryFile + "<br>" 

任何幫助表示讚賞,因爲VB.NET不是我主要焦點。

+0

'HttpContext.Current.Request.Url.AbsoluteUri.Replace(HttpContext.Current.Request.Url.PathAndQuery, 「/」) 「什麼時候出來?這將首先考慮錯誤的URL,儘管它也可能是後來的html變量有一些替換運行,它將取出測試URL。 –

+0

它說''http:// prod/int /'。這有什麼幫助? – Joey

+0

如果是這樣,那麼我想知道該方法導致配置問題與鏈接之前。考慮一下如何縮小代碼中的哪些地方可以找到問題的原因。 –

回答

0

你可能已經檢查過這個,但有時候顯然會被忽略。

  1. 驗證瀏覽器窗口中的URL。確保它在你打盹的時候沒有變成http://prod ......

  2. 確認您的Web應用程序未使用框架。有問題的頁面可以使用prod URL加載到一個框架中。如果是這種情況,你的web.config可能有一個設置來說明這個幀的加載位置,或者它可能只是硬編碼。

  3. 檢查在IIS URL重寫規則,或者你的web.config