2012-04-05 12 views
2

Windows XP SP3システムでHttpListenerクラスを使用する単純なC#(フレームワーク2.0)アプリケーションをデプロイしようとしています:HttpListener.IsSupportedプロパティがfalseであるため、アプリケーションは初期化時に打ち切ります。HttpListener.IsSupportedはXP SP3でfalseです

質問:HttpListenerは(合理的に)最新のXPシステムではサポートされていないことがありますか?重要ではでき

もの:

  • ユーザーが自分のシステムの管理者ではありません
  • 私は私はわからないんだけど(とその認識していないよ、コンピュータ上のセキュリティポリシーがあるかもしれません)管理者はされずに

答えて

2

を自分自身をチェックすることがわかりました、ボンネットの下にHttpListenerクラスは

[StructLayout(LayoutKind.Sequential)] 
internal struct HTTPAPI_VERSION 
{ 
    internal ushort HttpApiMajorVersion; 
    internal ushort HttpApiMinorVersion; 
} 

[DllImport("httpapi.dll", CallingConvention=CallingConvention.StdCall, SetLastError=true, ExactSpelling=true)] 
internal static extern unsafe uint HttpInitialize(HTTPAPI_VERSION version, uint flags, void* pReserved); 
0を呼び出し、 XP上で

hereに記載されている

version.HttpApiMajorVersion = 2; 
version.HttpApiMinorVersion = 0; 
flags = 5; 
pReserved = null; 

。そして、あなたは直接のPInvokeを使用してそれを呼び出すとsystem error codeをチェックしようとすることができますbool supported = HttpInitialize(...) == 0;

0

一つの可能​​性を返さ設定:組み込みXPでもSP2で、後にHttpListenerを/ http.sysのをサポートしていないようです。

関連する問題