HttpAddUrl因ERROR_SHARING_VIOLATION(32L)而失败

时间:2011-01-22 10:45:18

标签: c++ winapi http winhttp

我正在尝试写一个价格听众。

数据作为“推送”响应到达,即:分块传输编码。 我决定使用http服务器api,因为如果短时间内没有数据,async wininet和winHTTP读取数据apis都会关闭连接。

首先,我正确使用http服务器api?

第二,如果我尝试,按照msdn示例:

retCode = HttpInitialize( 
            HttpApiVersion,
            HTTP_INITIALIZE_SERVER,
            NULL
            );    // return is NO_ERROR

retCode = HttpCreateHttpHandle(
            &hReqQueue,
            0
            );    // return is NO_ERROR

std::wstring url = _T( "http://apidintegra.tkfweb.com:80/" );
retCode = HttpAddUrl(
            hReqQueue,
            url.c_str(),
            NULL
            );    // always fails with ERROR_SHARING_VIOLATION

我总是遇到共享违规行为。我需要使用netsh以某种方式配置连接吗?如果是这样的话?我已经看到提到配置http.sys,我甚至尝试以管理员身份执行上述代码。

我会非常感激一些帮助,因为这里的代码似乎很少!

非常感谢, 乔恩

1 个答案:

答案 0 :(得分:0)

如果端口已被其他进程使用,则会发生此错误。这意味着另一个应用程序使用该端口(例如IIS或其他Web服务器)。