【问题标题】:HTTPListener operation is not supported on this platform此平台不支持 HTTPListener 操作
【发布时间】: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


    【解决方案1】:

    有时有其他服务在使用该端口,有时该服务被禁用。

    高程运行:

    net stop http /y

    sc config http start= 需求

    可能需要重新启动。

    【讨论】:

      【解决方案2】:

      好吧,在我的情况下,这是 http 服务问题,但它更深。

      使用@Artur ABC 方法,我发现我无法再次启动 http 服务。是The configuration registry database is corrupt.。

      我不得不去注册表和Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo\,然后我发现绑定服务的ine设置在我的旧本地IP192.168.1.54上,当我重新启动我的网络时我有一个新的IP地址,我不得不删除来自注册表的旧服务。

      【讨论】:

        【解决方案3】:

        我通过将设备管理器中的“HTTP”驱动程序设置为“需求”来修复它。转到查看>显示隐藏的设备可以找到“HTTP”(以及其他非即插即用)。

        我遇到了this article,这让我怀疑是否启用了 HTTP 驱动程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-27
          • 1970-01-01
          相关资源
          最近更新 更多