# setting up servoy behind IIS

**URL:** https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102
**Category:** Classic Servoy
**Created:** [April 24, 2010, 10:11pm UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102 "2010-04-24T22:11:56Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [April 24, 2010, 10:11pm UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/1 "2010-04-24T22:11:56Z")

</div>

OK,  
For some time I have been running servoy behind IIS6. Why? Because the server only has a single IP and IIS needs to run on port 80/443 for some other applications - so I use ISAPI\_redirect.dll to collect ‘servoy’ requests on port 80/443 and forward them on to servoy on 8080/8443. It also means I dont have to open/use anything escept standard ports 80/443. Most corporate environments I work with wont allow any other ports to be used.

Works just fine. (I can share the config if anyone is interested.

I am now setting up a new environment using IIS7 on Windows 2008 R2 x64. I did manage to get ISAP\_redirect.dll to work (eventually) but it is grindingly slow. Various posts elsewhere indicate that this is no longer the best way to go for IIS7. So I have installed and setup ARR & URLRewrite to do the same thing - which is supposed to have better performance on IS7.

For the webclient it works perfectly. User connects to [http://server/servoy-webclient](http://server/servoy-webclient) and is transparently rewritten to port 8080 on the server - ie port 8080 no longer needs to be open.  
However for the SC it’s a different story. [http://server:8080/servoy-client/servoyclient.jnlp](http://server:8080/servoy-client/servoyclient.jnlp) works fine…but [http://server/servoy-client/servoyclient.jnlp](http://server/servoy-client/servoyclient.jnlp) starts to download the SC and then fails with:

com.sun.deploy.net.FailedDownloadException: Unable to load resource: [http://localhost:8080/servoy-client/servoy-client.jnlp](http://localhost:8080/servoy-client/servoy-client.jnlp)  
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)

so whilst the rewrite is quite happily sending the initial request to the correct port (8080 on localhost on server) after that it fails…now I know this is not specifically a servoy thing; its more the interaction of servoy with IIS7 + ARR + URLrewrite…but has anyone else tried this and got it working??

I really need to be able to support servoy running on 80/443 - and ISAPI\_redirect.dll now seems to be the ‘old’ way of doing it.

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [April 25, 2010, 7:25am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/2 "2010-04-25T07:25:19Z")

</div>

Ok  
If anyone cares - I have got a little further.  
a) Under IIS7 install ARR.  
b) Setup a server farm  
c) Add a server to the farm -  
name: localhost  
advanced settiings ports 8080/8443  
d) You will be prompted to create server rewrite rules - accept and ARR should make the correct rules for you. ![:)]( "Smile")

So now ARR redirects anything in on port 80 to 8080 on localhost - which is great as that means the SC starts up…BUT…then it fails with the ‘cant find dataservice’ error.

If I turn on java console for the client I see:

25/04/2010 5:22:46 PM com.sebster.tunnel.impl.rb b  
INFO: jcifs library found; NTLM support enabled  
Reading certificates from 125290 [http://dev.cesoft.com.au:80/plugins/pdf … 14-135.jar](http://dev.cesoft.com.au:80/plugins/pdf_output/bcprov-jdk14-135.jar) | C:\Documents and Settings\alb\application data\Sun\Java\Deployment\cache\6.0\46\5556a1ee-21307273-1.35.0-.idx  
25/04/2010 5:22:46 PM com.sebster.tunnel.impl.rb b  
INFO: bouncy castle library found; SPNEGO support enabled  
25/04/2010 5:22:46 PM com.sebster.tunnel.impl.rb b  
INFO: using direct connection  
com.sebster.tunnel.http.client.HttpException: 500 Internal Server Error  
at com.sebster.tunnel.impl.rb.a(rb.java:15)  
at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:5)  
at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)  
at com.sebster.tunnel.impl.s.connect(s.java:6)  
at com.sebster.tunnel.DelegatingTunnelClient.connect(DelegatingTunnelClient.java:1)  
at com.sebster.tunnel.impl.ac.(ac.java:5)  
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider$1.(ClientMultiplexedRmiSocketFactoryProvider.java:1)  
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.(ClientMultiplexedRmiSocketFactoryProvider.java:1)  
at com.sebster.tunnel.multiplexer.rmi.ClientMultiplexedRmiSocketFactoryProvider.(ClientMultiplexedRmiSocketFactoryProvider.java:15)  
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.(ClientTunnelRMISocketFactoryFactory.java:273)  
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory$RmiSocketFactoryProvider.(ClientTunnelRMISocketFactoryFactory.java:271)  
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.createFactoryProvider(ClientTunnelRMISocketFactoryFactory.java:220)  
at com.servoy.j2db.server.rmi.tunnel.ClientTunnelRMISocketFactoryFactory.(ClientTunnelRMISocketFactoryFactory.java:209)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)  
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)  
at java.lang.reflect.Constructor.newInstance(Unknown Source)  
at com.servoy.j2db.J2DBClient.Zf(J2DBClient.java:17)  
at com.servoy.j2db.J2DBClient.startupApplication(J2DBClient.java:113)  
at com.servoy.j2db.Zyd.run(Zyd.java:4)  
at com.servoy.j2db.J2DBClient.mainImpl(J2DBClient.java:458)  
at com.servoy.j2db.J2DBClient.main(J2DBClient.java:1176)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
at java.lang.reflect.Method.invoke(Unknown Source)  
at com.sun.javaws.Launcher.executeApplication(Unknown Source)  
at com.sun.javaws.Launcher.executeMainClass(Unknown Source)  
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)  
at com.sun.javaws.Launcher.run(Unknown Source)  
at java.lang.Thread.run(Unknown Source)

So there is an internal server error (500) when the SC tries to contact the data service.  
Interestingly IIS7 also records that there is an ‘Internal server error -500’ from the upstream server (eg Tomcat) at this point.  
Any ideas…perhaps I am the only one dumb enough to eb trying to get this to work.

Al

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [April 25, 2010, 9:09am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/3 "2010-04-25T09:09:12Z")

</div>

still going…now it seems that the servoy (tomcat) server is sending back a 500 (internal server error) in response to the request it is getting forwarded through form IIS7 (ARR). problem is I can work out why. If I check the localhost log for the tomcat server I see;  
202.148.159.84 - - [25/Apr/2010:19:05:17 +1000] “GET /servoy-client/servoy-client.jnlp HTTP/1.1” 200 5741  
202.148.159.84 - - [25/Apr/2010:19:05:19 +1000] “GET /servoy-client/servoy-client.jnlp HTTP/1.1” 200 5741  
202.148.159.84 - - [25/Apr/2010:19:05:19 +1000] “GET /servoy-client/servoy-client.jnlp HTTP/1.1” 200 5741  
202.148.159.84 - - [25/Apr/2010:19:05:19 +1000] “GET /servoy-client/servoy-client.jnlp HTTP/1.1” 200 5741  
202.148.159.84 - - [25/Apr/2010:19:05:21 +1000] “GET /lib/splashclient.gif HTTP/1.1” 304 -  
202.148.159.84 - - [25/Apr/2010:19:05:23 +1000] “GET /servoy.properties HTTP/1.1” 200 4894  
202.148.159.84 - - [25/Apr/2010:19:05:23 +1000] “POST /tunnel HTTP/1.1” 500 1000  
202.148.159.84 - - [25/Apr/2010:19:05:23 +1000] “GET /servoy\_messages?lastmodified=-1&language=en\_AU HTTP/1.1” 200 34  
202.148.159.84 - - [25/Apr/2010:19:05:24 +1000] “POST /tunnel HTTP/1.1” 500 1000

before it fails.  
How can I tell what is INSIDE the /tunnel requests? Is there any way to log that somewhere - otherwise its pretty hard to work out why tomcat is choking…

---

<div class="post-metadata">

### Author: ![ptalbot](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.servoy.com/ptalbot/32/4952_2.png) [@ptalbot](https://forum.servoy.com/u/ptalbot)
#### Post date: [April 26, 2010, 3:15am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/4 "2010-04-26T03:15:33Z")

</div>

I don’t know about your error, but when I look into /servoy/application\_server/server/webapps/ROOT/WEB-INF/web.xml file, I can see that the /tunnel path is mapped (or should be, maybe there is something wrong here in your case) to the http-tunnel-servlet (com.sebster.tunnel.http.server.servlet.HttpTunnelServlet) with an init-param of “com.servoy.j2db.server.rmi.tunnel.ServerTunnelRMISocketFactoryFactory” which is the value you have to put in the servoy-admin network parameters for the “SocketFactory.rmiServerFactory”.

Does you web.xml contain this mapping and did you put the relevant reference in SocketFactory.rmiServerFactory?

Maybe you could also set the tracing to on in the servoy-admin ‘Server Log’ page, you might get more output there.

Hope this helps,

---

<div class="post-metadata">

### Author: ![ptalbot](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.servoy.com/ptalbot/32/4952_2.png) [@ptalbot](https://forum.servoy.com/u/ptalbot)
#### Post date: [April 26, 2010, 3:31am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/5 "2010-04-26T03:31:37Z")

</div>

With Apache I know that you need to create a connector to use AJP protocol and use mod\_jk in Apache to enable direct communication between Apache and Tomcat.  
Might be the case with IIS and isapi\_redirect?

I would experiment with different settings, adding a new node with a port different than the one used for HTTP/1.1

I don’t know how much of this is relevant to IIS though, so you will need to refer to the Tomcat docs ([Apache Tomcat 6.0 (6.0.53) - Documentation Index](http://tomcat.apache.org/tomcat-6.0-doc/index.html) and [Apache Tomcat Configuration Reference (6.0.53) - Overview](http://tomcat.apache.org/tomcat-6.0-doc/config/index.html))

Hope this helps,

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [April 26, 2010, 9:50am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/6 "2010-04-26T09:50:41Z")

</div>

thanks for the replies.  
Yep I do have those tunnel settings - both in the web.xml and th servoy.properties file.  
I should also clarify that the http tunnel works prefectly if I access tomcat directly on 8080.

it’s only when I try to use the ARR+Urlwrite in IIS to intercept 80-\> 8080 that I get problems.  
So I know the issue is the IIS rewrite…but the web client works perfectly …so ordinary html rewrite from 80-\>8080 is ok.  
Its just the smart client that bombs.

I also can see that the reason it bombs is because tomcat responds with a 500 - Internal server Error.

The issue is where/how can I get more detail as to _why_ tomcat is thorwing that error?  
Doesnt seem to be anything more in the logs/  
Al.

BTW here’s the java console when it fails on the client:

Reading certificates from 6496 [http://dev.cesoft.com.au:80/plugins/serialize.jar](http://dev.cesoft.com.au:80/plugins/serialize.jar) | C:\Documents and Settings\alb\application data\Sun\Java\Deployment\cache\6.0\18\a702bd2-368858f5-1270639428624-.idx  
Installing tunnel in http mode to [http://dev.cesoft.com.au:80/](http://dev.cesoft.com.au:80/)  
26/04/2010 7:33:27 PM com.sebster.tunnel.impl.rb b  
INFO: jcifs library found; NTLM support enabled  
26/04/2010 7:33:27 PM com.sebster.tunnel.impl.rb b  
INFO: bouncy castle library found; SPNEGO support enabled  
26/04/2010 7:33:27 PM com.sebster.tunnel.impl.rb b  
INFO: using direct connection  
com.sebster.tunnel.http.client.HttpException: 500 Internal Server Error  
at com.sebster.tunnel.impl.rb.a(rb.java:15)  
at com.sebster.tunnel.http.client.HttpTunnelClient.connect(HttpTunnelClient.java:5)  
at com.sebster.tunnel.http.client.AuthenticatingHttpTunnelClient.connect(AuthenticatingHttpTunnelClient.java:9)  
…

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [April 26, 2010, 4:57pm UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/7 "2010-04-26T16:57:28Z")

</div>

Hi,

Serveral things:

1. When using a redirect, you need to specifically add a line in the servoy.properties which says where clients can find the jnlp file, because normally Servoy just looks at where it’s hosted and returns that URL. So If you’re redirecting, Servoy doesn’t know this and thinks it’s on port 8080, when in fact you’re accessing it via a redirect. The property to use (you can set in the admin pages) is servoy.jnlpCodebaseOverride. Just set it to the base url of your Servoy the way clients have to access it, i.e. [https://my.server.com](https://my.server.com) or [http://my.server.com](http://my.server.com) or [https://my.server.com:8080](https://my.server.com:8080) depending on your situation. This URL must point to the host that’s doing the forwarding for you, not the real host where Servoy is.

2. When using the tunnel with ISS make sure you set the “chunked” property for the tunnel to on. Specifically, try adding the following two options to your servoy.properties:

```auto
system.property.com.sebster.tunnel.http.client.chunked=false
system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=false

```

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [April 26, 2010, 4:59pm UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/8 "2010-04-26T16:59:20Z")

</div>

One more thing, to test that the tunnel servlet is available via the ISS server, test the http(s)://my.server.com/tunnel url. It should show a message (and not give a 500) indicating it’s up and running.

Finally, when you see 500 errors, check the Servoy log, the errors should be logged in there with stack traces, which will give me more info if they persist.

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 1, 2010, 6:36am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/9 "2010-05-01T06:36:06Z")

</div>

Ok thanks for the suggestions.  
I checked browsing to [http://server.com/tunnel](http://server.com/tunnel) and it works just fine (no 500 error).  
I set the root server name ([http://server.com](http://server.com)) in servoy.properties and the two chunking parameters - but unfortunately that didnt fix it.

The Sc downloads then tries to run. It fails with ‘caanot find dataservice’. In the Java console I see:

01/05/2010 4:33:08 PM com.sebster.tunnel.impl.rb b  
INFO: using direct connection  
com.sebster.tunnel.http.client.HttpException: 500 Internal Server Error  
at com.sebster.tunnel.impl.rb.a(rb.java:15)

So still getting that 500 Internal Server Error back from tomcat ![:(]( "Sad")

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 1, 2010, 6:45am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/10 "2010-05-01T06:45:50Z")

</div>

…and all I see in the servoy server log when the client fails is:

2010-05-01 16:44 http-8080-1 INFO com.servoy.j2db.util.Debug Loading messages from server: null table: null  
2010-05-01 16:44 http-8080-1 INFO com.servoy.j2db.util.Debug Loading messages on server for a client, modified change: -1, language: en\_AU, solution: null

- not much help ![:(]( "Sad")

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [May 1, 2010, 7:18am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/11 "2010-05-01T07:18:37Z")

</div>

Hi,

Couple of things you can try:

1. Increase the server side logging, add the following to the servoy.properties:

```auto
log4j.logger.com.sebster=DEBUG

```

1. Turn on the request dumper in tomcat to get some extra logging, add the following to the tomcat conf/server.xml file after the line:

```auto
      <Valve className="org.apache.catalina.valves.RequestDumperValve"/>

```

1. Use wireshark to log the TCP traffic during the setup, and send me the file. I’ll then look at what’s going wrong.

2. Send me the networktnl.jar file in your Servoy distribution, then I’ll figure out what’s tripping it up.

3. Tell me what version of servoy you’re running.

If you start with 4 and 5 we can work in parallel. ![:)]( "Smile")  
Send them to [svanerk@servoy.com](mailto:svanerk@servoy.com).

Best regards,  
Sebastiaan

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 1, 2010, 7:49am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/12 "2010-05-01T07:49:30Z")

</div>

Thanks Sebastiaan  
I think I’ve _almost_ got it. I played around with the various ‘proxy’ settings that are available in ARR in IIS7.  
Specifically I:  
a) Enabled ‘Reverse rewrite host in response headers’  
b) Disabled ‘Include TCP Port from Client IP’ in custom headers

After those changes it started working…albeit very slowly. The SC downloads AND connects to the dataservice AND opens the default solution all on the redirected URL. great.

Interestingly I did insert the system properties you suggested:

system.property.com.sebster.tunnel.http.client.chunked=false  
system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=false

but they made it break again. Are you sure that the properties should be set to false? Surely that would turn chunking off?  
What is chuning anyway and how does it interact with IIS?

Thanks  
Al

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [May 1, 2010, 7:57am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/13 "2010-05-01T07:57:51Z")

</div>

Hi,

I’m sorry, silly mistake of mine. The values should be:

```auto
system.property.com.sebster.tunnel.http.client.chunked=true
system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=false

```

The “chunked” property MUST be true via ISS (otherwise it breaks), but the closeRequestOnFlush doesn’t matter functionality wise, but turning it off will speed up the data rate significantly.

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [May 1, 2010, 8:09am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/14 "2010-05-01T08:09:42Z")

</div>

BTW, can you still send me your version of networktnl.jar. ![:)]( "Smile")

I’d like to figure out what exactly is causing the problem, to see if I can do anything to fix the problem on our side.

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 1, 2010, 8:14am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/15 "2010-05-01T08:14:03Z")

</div>

Sebastiaan

system.property.com.sebster.tunnel.http.client.chunked=true

works just fine but setting:

system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=false

causes the SC to fail with ‘Data Service not found’.

when passing through an IIS7 + ARR redirect.

Al

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [May 1, 2010, 11:15am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/16 "2010-05-01T11:15:43Z")

</div>

Hi,

Strange that it doesn’t work with the closeRequestOnFlush=false.

Does the proxy do any buffering/content filtering?

Or do you have something like a web-shield virus-scanner on the client?

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 1, 2010, 9:44pm UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/17 "2010-05-01T21:44:57Z")

</div>

Hi Sebastiaan (and anyone else trying to do this). I have confirmed that you need:

system.property.com.sebster.tunnel.http.client.chunked=true  
system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=true

for the tunnel to the data aservice to work.

Also, on the IIS7+ARR server you need ‘Include TCP Port from Client IP’ OFF in the proxy settings.  
From my testing it seems that ‘Reverse rewrite host in response headers’ doesnt matter.

I also set the ‘Response Buffer Threshold’ in ARR proxy to 0 - to get ARR to start streaming the response from tomcat back immediately rather than buffer it. This seemed to increase performance about 20% ? (no measurements- just counting under my breath!)  
So I seem to have a working servoy on ports 80/443 behind IIS7 + ARR. ![:)]( "Smile")

Yipee.

---

<div class="post-metadata">

### Author: ![sebster](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sebster](https://forum.servoy.com/u/sebster)
#### Post date: [May 2, 2010, 10:31am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/18 "2010-05-02T10:31:01Z")

</div>

Hi,

Good that you got it working. ![:)]( "Smile")

1. If you could send me the networktnl.jar of your distribution I can check out what went wrong initially. (You can email it it to my svanerk |at| [servoy.com](http://servoy.com) email address).

2. Theoretically, if there is no buffering between tomcat and the client, you can set closeRequestOnFlush to false; this will greatly improve performance. The problem is that if _anything_ buffers, this option is required to be true. Things that may buffer:

- the proxy (but you turned it to 0 now, so you could try setting it to false again)
- a virus-scanner on the client (specifically a “web-shield” part of the virus scanner)

---

<div class="post-metadata">

### Author: ![alb](https://avatars.discourse-cdn.com/v4/letter/a/f475e1/32.png) [@alb](https://forum.servoy.com/u/alb)
#### Post date: [May 3, 2010, 9:48am UTC](https://forum.servoy.com/t/setting-up-servoy-behind-iis/12102/19 "2010-05-03T09:48:45Z")

</div>

Hi Sebastiaan,  
Good news.  
It seems that you are correct…after setting the ‘Response Buffer Threshold’ in ARR proxy to 0 to stop ARR waiting to buffer I can now set:

system.property.com.sebster.tunnel.http.client.closeRequestOnFlush=false

and it still works - and is much faster!

Its working really well now - so you can run servoy behind IIS7.  
Al.
