【发布时间】:2017-04-30 05:41:57
【问题描述】:
我刚刚在我的应用程序中添加了一个简单的HTTPListener 测试。它在 Windows 10 x64 上运行良好,但拒绝在 Server 2008 R2 Standard x64 上运行。我以管理员身份运行它(否则我会得到“拒绝访问”)。我检查了没有其他东西试图绑定到同一个端口(我会得到一个不同的错误):
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。
【问题讨论】:
标签: .net vb.net exception httplistener