2

HttpListenerWindows XP SP3システムでクラスを使用する単純なC#(フレームワーク2.0)アプリケーションを展開しようとしています。HttpListener.IsSupportedプロパティがであるため、アプリケーションは初期化時に中止されますfalse

質問:(HttpListener合理的に)最新のXPシステムでサポートされなくなる原因は何ですか?

重要なこと:

  • ユーザーは自分のシステムの管理者ではありません
  • 私が知らない(そして私自身が管理者でなくても確認できるかどうかわからない)コンピュータのセキュリティポリシーがあるかもしれません。
4

2 に答える 2

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);

XPの場合:

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

ここで説明します。そしてセットbool supported = HttpInitialize(...) == 0;

PInvokeを使用して直接呼び出して、返されたシステムエラーコードを確認することができます

于 2012-04-05T10:01:34.380 に答える
0

1つの可能性:XP Embeddedは、SP2以降でもHttpListener/http.sysをサポートしていないようです。

于 2012-04-05T15:40:29.580 に答える