首页 文章

此平台不支持HTTPListener操作

提问于
浏览
1

我刚刚在我的应用程序中添加了一个简单的 HTTPListener 测试 . 它在Windows 10 x64上运行良好,但拒绝在Server 2008 R2 Standard x64上运行 . 我以管理员身份运行它(否则我得到"access denied") . 我检查没有别的东西试图绑定到同一个端口(我会得到一个不同的错误):

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 .

2 回答

  • 1

    有时候有其他服务使用该端口,有时服务被禁用 .

    以高程运行:

    net stop http /y

    sc config http start= demand

    可能需要重新启动 .

  • 0

    我通过将设备管理器中的"HTTP"驱动程序设置为"Demand"来修复它 . 可以通过 View > Show Hidden Devices 找到"HTTP"(以及其他非PnP) .

    我跑过this article,这让我想知道HTTP驱动程序是否已启用 .

相关问题