The web server behave differently and after tracing using ProcMon (Process Monitor) I found out that it using dlls from the GAC_MSIL directory. The directory doesn't visible to human eye because it used by the system the read the IL code. Basically the actual dlls' directory is in C:\WINDOWS\assembly. I know that the app use the wrong dlls, it should used the dlls inside bin directory instead. now what?
1. I went to C:\WINDOWS\assembly directory, drag the unwanted dlls to outside of the directory. nothing happen.
2. Right clicked at the unwanted dlls and select uninstall, the I got this message - unable to uninstall: assembly is required by one or more applications.
3. I'm thinking to force uninstall it but there's no gacutil on the client. System admin doesn't allowed .NET Framework SDK installed on the server.
4. Search the knowledge base and found this - http://support.microsoft.com/kb/873195
5. Did exactly instructed in the kb and right click the unwanted dlls, select uninstall and it has gone. sweet.
It just a typical debugging task for developer. But I think I just stuck with the problem for a few hours and this blog hasn't been updated for more that a year.