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

Cob*_*aia 6 windows wininet winhttp visual-c++

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

在msdn WinHTTP与WinINet页面上说:

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

在msdn注意WinInet函数说:

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

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

sev*_*tov 5

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

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

两者都不。IIS 有自己的HTTP 堆栈,HTTP.sys 驱动程序在内核模式下运行