my development environment in IIS 5 on a Win XP machine, but does not
work in IIS 6 on my production Win 2003 Server machine.
When debugging I get a System.Net.WebException with the error message
"remote server returned error 400: bad request." The strange thing is
that the Response.ResponseUri in the Exception object shows the
internal IP address of the server, not the IP address of the website.
Here are the contents of the client configuration file (I've changed
the client url for display purposes):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<client displayName="SchedulingClient" url="http://abc.123.com/
TosdScheduling">
<activated type="TosdScheduling.SchedulingManager,
TosdScheduling" />
<activated type="TosdScheduling.AppointmentType,
TosdScheduling" />
<activated type="TosdScheduling.Appointment, TosdScheduling" /
><activated type="TosdScheduling.RoomType, TosdScheduling" />
<activated type="TosdScheduling.Room, TosdScheduling" />
<activated type="TosdScheduling.Trainer, TosdScheduling" />
<activated type="TosdScheduling.RoomClose, TosdScheduling" />
<activated type="TosdScheduling.RecurringClose,
TosdScheduling" />
<activated type="TosdScheduling.CancelRule, TosdScheduling" />
</client>
<channels>
<channel ref="http" />
<clientProviders>
<format ref="binary" />
</clientProviders>
</channels>
</application>
</system.runtime.remoting>
</configuration>
And here is what the Web.config file looks like:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<activated type="TosdScheduling.SchedulingManager,
TosdScheduling" objectUri="SchedulingManager.rem" />
<activated type="TosdScheduling.AppointmentType,
TosdScheduling" objectUri="AppointmentType.rem" />
<activated type="TosdScheduling.Appointment, TosdScheduling"
objectUri="Appointment.rem" />
<activated type="TosdScheduling.RoomType, TosdScheduling"
objectUri="RoomType.rem" />
<activated type="TosdScheduling.Room, TosdScheduling"
objectUri="Room.rem" />
<activated type="TosdScheduling.Trainer, TosdScheduling"
objectUri="Trainer.rem" />
<activated type="TosdScheduling.RoomClose, TosdScheduling"
objectUri="RoomClose.rem" />
<activated type="TosdScheduling.RecurringClose,
TosdScheduling" objectUri="RecurringClose.rem" />
<activated type="TosdScheduling.CancelRule, TosdScheduling"
objectUri="CancelRule.rem" />
</service>
<channels>
<channel ref="http" />
</channels>
</application>
</system.runtime.remoting>
<connectionStrings>
<add name="CSDB" providerName="iAnywhere.Data.AsaClient"
connectionString="x5k7UI5SvZk4aH8hM6coIIIENBLq503i MxwUAdEgSZMTU58+7qP/
+cou7Fsbepz0h0NdKGv72CzjFTZAxN29Mw==" />
</connectionStrings>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
So basically the first request (to RemoteActivationService.rem) works
fine, but the following requests are routed to another IP address
configured on the same physical NIC. How is this possible?
We're running a "server farm" using the Network Load Balancing manager
to create the cluster, but this configuration has been working for web
services hosted on this same website. This remoting application is
the only thing that is somehow routing requests to an internal IP
address that is one of many assigned to the same NIC as the website.