我必须调试一个离开公司的人的旧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不是我的主要关注点。
答案 0 :(得分:0)
你可能已经检查了这个,但有时明显被忽视了。
在浏览器窗口中验证网址。确保它没有变成http://prod ......当你在navegating时。
验证您的Web应用程序未使用框架。可以使用prod URL将相关页面加载到框架中。如果是这种情况,您的web.config可能有一个设置来说明从哪里加载该帧,或者它可能只是硬编码。
检查IIS或web.config中的URL重写规则