2016-12-14 21 views
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に設定されています。

答えて

0

デバイスマネージャの「HTTP」ドライバを「要求」に設定して修正しました。 表示>非表示のデバイスを表示にアクセスすると、「HTTP」(他の非PnPと同様)が見つかります。

私はthis articleを実行したので、HTTPドライバが有効になっているかどうか疑問に思っていました。

関連する問題