WinInet vs WinHttp(服务或类似服务的过程)

时间:2012-08-16 17:32:20

标签: windows visual-c++ wininet winhttp

我无法理解这两个概念“服务或类似服务的过程”之间的区别。

在msdn WinHTTP vs. WinINet页面上说:

  

在两者之间进行选择时,除非您使用WinINet   计划在需要的服务或类似服务的过程中运行   模仿和会话隔离。

在msdn注意WinInet function说:

  

注意WinINet不支持服务器实现。另外,它   不应该从服务中使用。对于服务器实现或   服务使用Microsoft Windows HTTP服务(WinHTTP)。

“需要假冒和会话隔离的服务或类似服务的流程”是指什么? “WinINet不支持服务器实现”是指在Windows Server上运行吗? 如果我的应用程序运行IIS我是否使用WinHTTP而不是WinInet?

2 个答案:

答案 0 :(得分:4)

WinINet专为面向人类的应用程序而设计,在某些情况下,它会在用户屏幕上显示错误消息和连接弹出窗口。如果您从服务中使用它,或者没有人可以解除弹出窗口,它将阻止您的应用程序。这就是为什么你不应该使用WinINet,除非你确定用户坐在电脑前等待解除“安装连接”对话框或错误信息。

  

如果我的应用程序运行IIS我是否要使用WinHTTP而不是WinInet?

都不是。 IIS有自己的HTTP stack,其中HTTP.sys驱动程序在内核模式下运行

答案 1 :(得分:0)

如果我的应用程序使用IIS运行我是否要使用WinHTTP而不是WinInet?

如果您的应用程序是ISAPI-DLL,则DLL在IIS的服务上下文中运行。因此,您应该使用WinHTTP。