VB.NET 2.0:代码中的URL来自哪里?

时间:2015-11-02 15:53:23

标签: asp.net .net vb.net httpcontext ihttphandler

我必须调试一个离开公司的人的旧VB.NET 2.0代码。我们有一个生产系统(我们称之为http://prod)和一个测试系统(http://test)。两者几乎相似,包括文档存储库。在查看生产中的文档时,显示在底部的所有超链接都可以(这意味着他们会说http://prod/download.ashx?id= {GUID}。

但是在测试中它是相同的(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不是我的主要关注点。

1 个答案:

答案 0 :(得分:0)

你可能已经检查了这个,但有时明显被忽视了。

  1. 在浏览器窗口中验证网址。确保它没有变成http://prod ......当你在navegating时。

  2. 验证您的Web应用程序未使用框架。可以使用prod URL将相关页面加载到框架中。如果是这种情况,您的web.config可能有一个设置来说明从哪里加载该帧,或者它可能只是硬编码。

  3. 检查IIS或web.config中的URL重写规则