У меня есть различные веб-страницы, которым нужно создать URL-адрес для отображения или размещения его в отправленном электронном сообщении. Унаследованный мной код имел это значение для имени веб-сервера в Public Const в Public Class с именем FixedConstants. Например:
Public Const cdServerName As String = "WEBSERVERNAME"
Пытаясь улучшить это, я написал это:
Public Class UIFunction
Public Shared myhttpcontext As HttpContext
Public Shared Function cdWebServer() As String
Dim s As New StringBuilder("http://")
Dim h As String
h = String.Empty
Try
h = Current.Request.ServerVariables("REMOTE_HOST").ToString()
Catch ex As Exception
Dim m As String
m = ex.Message.ToString() 'Ignore this should-not-occur thingy
End Try
If h = String.Empty Then
h = "SomeWebServer"
End If
s.Append(h)
s.Append("/")
Return s.ToString()
End Function
Я пробовал разные вещи при отладке, такие как HttpContext.Current.Request.UserHostName, и я всегда получаю пустую строку, которая выкачивает мою строку по умолчанию «SomeWebServer».
Я знаю, что Request.UserHostName или Request.ServerVariables ("REMOTE_HOST") работают при вызове со страницы, но почему это возвращает пустое значение при вызове из вызываемого метода файла класса (т.е. UIFunction.vb)?