Я просто добавил простой тест HTTPListener
к моему приложению. Он отлично работает на Windows 10 x64, но отказывается запускаться на Server 2008 R2 Standard x64. Я запускаю его как Администратор (иначе я получаю «доступ запрещен»). Я проверил, что ничего не пытается привязать к тому же порту (я хотел бы получить другую ошибку):Операция HTTPListener не поддерживается на этой платформе
Imports System.Net
Public Class Test
Public ReadOnly Property Address As String
Get
Return _Address
End Get
End Property
Public ReadOnly Property Port As Integer
Get
Return _Port
End Get
End Property
Private _Address As String
Private _Port As Integer
Private listener As HttpListener
Private listenerThread As Threading.Thread
Public Sub New(ByVal addr As String, ByVal p As Integer)
_Address = addr
_Port = p
End Sub
Public Sub Start()
listener = New HttpListener()
listener.Prefixes.Add("http://" & Address & ":" & Port & "/")
listenerThread = New Threading.Thread(AddressOf ListenerThreadSub)
listenerThread.Start()
End Sub
Public Sub ListenerThreadSub()
listener.Start()
While listener.IsListening
Dim response As HttpListenerResponse = Nothing
Try
Dim context As HttpListenerContext = listener.GetContext()
Dim path As String = context.Request.Url.LocalPath
response = context.Response
MsgBox(path)
Catch ex As Exception
End Try
End While
listenerThread.Abort()
End Sub
Public Sub Finish()
listener.Stop()
End Sub
End Class
Это моя тестовая кнопка:
Private Sub TestToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TestToolStripMenuItem.Click
Dim TestService As Test = New Test("FQDNOFSERVER", PORT)
TestService.Start()
End Sub
Целевые рамки .NET 4.6.1 , но этот класс, как представляется, поддерживается с .NET 4. Свойство IsSupported
имеет значение False
.