9

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

在 msdn WinHTTP vs. WinINet页面上说:

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

WinInet 函数的 msdn 注释中说:

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

“需要模拟和会话隔离的服务或类似服务的过程”是什么意思?
“WinINet 不支持服务器实现”是指在 Windows Server 上运行?
如果我的应用程序使用 IIS 运行,我是否必须使用 WinHTTP 而不是 WinInet?

4

2 回答 2

6

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

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

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

于 2012-08-18T04:59:04.043 回答
1

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

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

于 2014-06-23T10:50:10.763 回答