WebLogic Filter is not working on IIS6


Question:


Hi,


I’ve been searching high and low for a couple of weeks but can’t find anything that helps with the problem I’m having. I have a Weblogic ISAPI filter registered on IIS6 (Win2k3 Server). Everything seems to be working with Weblogic, specifying port 7001 (default Weblogic port) on the URL works but the filter doesn’t seem to be working. I have checked the .ini file to make sure that the right port and forward path. The filter has a green arrow on IIS but I am getting a “page cannot be displayed” when the url is called without specifying the port. There are no errors in Event Viewer.


Since you seem to have a lot of knowledge about how ISAPI filters work in IIS, please point me in the right direction. Any help is greatly appreciated. Thank you!


Answer:


Unfortunately, the correct answer here is for you to contact product support for WebLogic to determine if your version of WebLogic supports running on IIS6 and if so, what is the proper configuration. For a supported product configuration, WebLogic is obligated to give you this information. We should not be figuring this out at all.


It seems like the WebLogic filter is supposed to be stealing requests from IIS, forwarding a new request to port 7001, and then reverse-proxy the response back to the client. The green arrow simply indicates that at some point in the past, IIS6 successfully loaded the DLL as an ISAPI Filter. Obviously, it says nothing about whether the Filter logically functions, but then again, that is the responsibility of the filter, not IIS.


Now, you say that the filter is not working and you have not found obvious errors, log files, nor event log entries from WebLogic. Seems like your problem is with the undebuggable (to you) WebLogic filter and not with IIS.


I hope you understand that:



  • When you have a question involving a product, you are supposed to first contact that product’s support personnel. There may be a monetary cost involved, but that is what you paid (or not paid) for.
  • Unless you have paid support, all other forms of support are basically best-effort.
  • I am not a free-substitute for a product support call. I know how IIS and its ISAPI Filter API works. I know nothing about how an arbitrary ISAPI Filter DLL works. Sure, I may be curious about some aspect of the issue and debug/reverse-engineer to figure out how a given arbitrary WebLogic ISAPI Filter is failing, but I really should not be doing that. That is what WebLog product support is *supposed* to do for you.

//David

Comments (11)

  1. OOOooooo…. Reverse Proxy ISAPI Filter … I’d love to see some code for how that works 😉

    IIRC, I posted something to usenet a while back on this topic. You had pointed out some interesting technical caveats as well.

    I still have a need to reverse proxy certain URLs to machines on my private network…any thoughts?

    Looking into the commercial ISAPI_Rewrite was not viable for my needs either.

    Thanks!

    Mark

  2. David Wang says:

    Mark – There is a site, http://www.iismods.com , that looked promising as it is geared towards Open Source implementations of some long-time Apache favorites onto IIS:

    – mod_rewrite

    – mod_auth

    – mod_proxy

    I have not had time to check out the source code (sigh, it is in Delphi, not C), but the idea seems good.

    //David

  3. DeepakMishra says:

    I am having a similar issue . Not sure if anyone was able to resolve this.

    Here is my scenario :

    I have 5 website hosted on the IIS 6 and all ther site reverse proxy to weblogic application server in my intranet. everything works fine. Both by proxy by path ( sevelets) and by extensions (.jsp).

    Now I have a issue with the sixth application site, we have exhausted the pool of all IP addresses so I am unable to create a new site for this application so here is what I have tried ..

    Created a New Website on IIS6 and then created 6 virtual directories each of this directory point to a different set of IISProxy.ini and IISProxy.dll (because each backend application is hosted on different server/ports)

    Now When I try to access my application such as

    https://mysite.com/lite/login.jsp

    https://mysite.com/vel/login.jsp

    https://mysite.com/kc/login.jsp

    https://mysite.com/end/login.jsp

    https://mysite.com/bpc/login.jsp

    All these request are proxied to correct backend application servers (verified in the wlproxy.log of each application) but when I try to access the servelet then I keep getting 404 errors on IIS.

    BTW : All these virtual directly are running in isolated pool (each jhas it own pool) also have ceated the Web Service Extension of each of these..

    Can anyone help me out how can I accomplish this task…!!

    Thanks

    Deepak Mishra

  4. David.Wang says:

    Deepak – your question seems to be with functionality/configuration of IISProxy.dll so you should obtain support from the provider of that binary.

    Right now it sounds like the "proxy by path" (Servlet) part is not working, and that functionality is presumably provided by IISProxy.dll, so you need to obtain support from the provider of that binary for your given configuration.

    Or maybe you failed to configure IISProxy.dll to forward the "proxy by path" portion; I have no idea of arbitrary ISAPI’s behavior; it is always best to have support for code you rely on but do not own/understanding.

    //David

  5. steph says:

    I had a problem with .jsp forwarding with BEA plugin on IIS6 with web service extension only  ASP and  isapi allowed. My solution was that after I correctly configured the iisforward.dll as an ISAPI plugin and iisproxy.dll as .wlforward as an Application extension (under Home directory, Application settings Configuration Mappings) I create a .jsp mapping with the same configuration as the .wlforward (using iisproxy.dll).  And after that everithing worked FINE…

  6. George says:

    You also may need to add the iisproxy.dll as a wild card.

  7. Nick Head says:

    In case anyone is still wondering how to fix the issue with the WebLogic filter, we just managed to get it working on IIS6. What you need to do is set up the WL DLLs as new Web Service Extensions in IIS. Just go to the Web Services Extensions node in IIS Manager, click ‘Add new extension’, give it an aribtrary name, add the WL DLLs and set them to be allowed. One iisreset later and voila!

  8. Howard Miles says:

    Also make sure the the Execute Permissions is set to "Sripts Only" the Default option is "None". I spent hours troubleshooting a 403 forbidden error

  9. John Isenhart says:

    If you’re still having trouble here’s what got things right for me:  

    –  Go into properties of the web site in IISmgr, and to the "Home Directory" tab.

    –  Hit the "Configuration" button to go look at the mappings.

    –  Make sure you have ".wlforward" mapped to the iisproxy.dll

    ==> *KEY* it still won’t work unless in the add/edit mapping window, MAKE SURE that "Verify that file exists" is UNCHECKED.

    The "Verify" property IS checked by default and having it checked or not was enough to cause the forwarding to just flat not work.

    From there, it’s as simple as making sure that your iisproxy.ini is simple – just the WebLogicCluster=xxxyyyzzz and WlForwardPath=/ was enough to establish that it was working properly.

    Hope this helps (if still needed! lol)

    John

  10. Bharath says:

    Hi, Im trying to integrate IIS and weblogic but im not getting the correct result, I will explain all the steps which i have done, please let me know if anything should be changed,

    1) installed weblogic in windows server name as test in D://

    2) installed IIS in another server name as test2.

    3) created a directory in IIS server with name IISredirect inside d: and pointed the default website home directory to IISredirect.

    4) placed iisproxy.dll and iisforward.dll inside the IISredirect folder and given full control to network service.

    5) Added iisproxy.dll file in Application Extension mapping and given extension name as .wlforward and selected the executable permissions as scripts and executables.

    6) added iisforward.dll file in isapi filters tab and given extension name as iisforward.

    7) created webservice extension and added iisforward.dll and iisproxy.dll files and allowed.

    7) created a iisproxy.ini file with below parameters

    WebLogicHost=test

    WebLogicPort=7001

    ConnectTimeoutSecs=10

    ConnectRetrySecs=20

    when i browse the weblogic link using http://test:7001/console/LoginForm.jsp im able access the login page, but when try to browse using IIS server name instead of weblogic server name like http://test2:7001/console/LoginForm.jsp im getting page cannot be displayed message.

    Could you please suggest how to make this work.

    Thank you very much in advance.

  11. Sathiya says:

    from previous replies, please try below

    – Uncheck Verify that file exists while adding .wlforward extension in mappings

    – make sure that isapi extension are allowed in iis manager under web service extension node.