2012-08-16 27 views
5

我無法理解這兩個概念「服務或類似服務的進程」之間的區別。WinInet vs WinHttp(服務或類似服務的進程)

在MSDN WinHTTP vs. WinINet頁說:

兩者之間選擇時,你應該使用的WinINet,除非你 計劃需要 模擬和會話隔離一個服務或服務類的過程中運行。

在MSDN記爲WinInet function說:

的WinINet注意不支持服務器實現。另外, 不應該從服務中使用。對於服務器實現或 服務使用Microsoft Windows HTTP服務(WinHTTP)。

什麼「需要模擬和會話隔離的服務或類似服務的進程」是指?
「WinINet不支持服務器實現」是指在Windows Server上運行?
如果我的應用程序使用IIS運行我是否使用WinHTTP代替WinInet?

回答

4

WinINet是爲面向人類的應用程序設計的,在某些情況下,它會在用戶屏幕上顯示錯誤消息和連接彈出窗口。如果你從服務中使用它,或者沒有人可以關閉彈出窗口,它會阻止你的應用程序。這就是爲什麼你不應該使用WinINet,除非你確定用戶坐在電腦前等待關閉「安裝連接」對話框或錯誤信息。

如果我的應用程序使用IIS運行我是否使用WinHTTP代替WinInet?

都沒有。 IIS有它自己的HTTP stack與Http.sys驅動程序在內核模式下

0

如果我用IIS應用程序運行有我使用的WinHTTP而不是WinInet的運行?

如果您的應用程序是ISAPI-DLL,則該DLL運行在IIS的服務上下文中。所以你應該使用WinHTTP。