0
私はアプリケーションに単純な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
に設定されています。