Buforowanie i formant WebBrowser w .Net
Używam formantu WebBrowser w .Net, aby wykonać konwersje marketingowe innych firm.
Mam tabelę kolejek w bazie danych ze wszystkimi skryptami / obrazami do wykonania. Przechodzę przez te wszystkie w aplikacji WinForms za pomocą formantu WebBrowser. Po wykonaniu skryptu / obrazu usuwam formant WebBrowser, ustawiam go na null i odnawiam go za pomocą nowej instancji kontrolki WebBrowser.
Rozważ ten adres URL:http: //renderserver/RenderScript.aspx? id = 1
RenderScript.aspx wyświetla obraz z adresem URL np .:http: //3rdparty/img.ashx? id = 9343
Używam Fiddlera, aby zobaczyć wszystkie żądania i odpowiedzi, a gdy ten sam URL jest wykonywany dwa razy, używa pewnego rodzaju pamięci podręcznej. Ta pamięć podręczna znajduje się pod samą kontrolą WebBrowser.
Ta pamięć podręczna oznacza, że img.ashx nie jest wywoływany.
Próbowałem za pomocą przeglądarki Internet Explorer zażądać adresu URL:http: //renderserver/RenderScript.aspx? id = 1 i naciśnij F5. Wtedy jest to wymagane idealnie.
Ale jeśli kliknę pasek adresu i kliknę Enter, aby ponownie przejść do tego samego adresu URL - nie jest to wymagane. Kiedy używam Firefoksa, będę prosić o stronę i obraz za każdym razem, niezależnie od tego, czy użyję F5, czy nawiguję z paska adresu.
Znalazłem kilka wywołań API Win32 (http://support.microsoft.com/kb/326201), który był w stanie wyczyścić pamięć podręczną. Działało na mojej lokalnej maszynie. Następnie aplikacja została wdrożona na serwerze z systemem Windows Server 2003 Standard x64 (mój własny komputer to Vista x86).
A teraz wywołania interfejsu API do czyszczenia pamięci podręcznej nie działają.
Wszelkie pomysły na to, dlaczego wywołania interfejsu API nie działają w systemie Windows Server, ale działają na systemie Vista? Obie maszyny pracujące z IE8.