I'm looing for a way to route a request from a front end web server to an
mid-tier application server to a back end SQL 2005 Server's Reporting
Services instance. The only allowed traffic/access to the SQL box is from
the App box.
I installed WSE 3.0 and created a new ASP.NET app, and have only the
web.config and referralcache.config files in it per the basic routing
quickstart example and guidance for the perimiter service router pattern. I
just wanted to first see if it would look transparent to the ReportViewer
web control, like it was a "real" reporting services instance.
If I browse to the routers web site of
http://localhost/WSETestRouter/ReportService.asmx, I get an error:
Server Error in '/WSETestRouter' Application.
--------------------------------------------------------------------------------
WSE003: The input was not a valid SOAP message.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.NotSupportedException: WSE003: The input was not a
valid SOAP message.
Source Error:
An unhandled exception was generated during the execution of the current web
request. Information regarding the origin and location of the exception can
be identified using the exception stack trace below.
Stack Trace:
[NotSupportedException: WSE003: The input was not a valid SOAP message.]
Microsoft.Web.Services3.Messaging.SoapHttpRouter.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext
context, AsyncCallback callback, Object extraData) +110
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+3291158
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +155
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET
Version:2.0.50727.210
I have yet to find a reference to "WSE003: The input was not a valid SOAP
message" that helps. I was hoping that the WSDL from the target web service
would show in my browser. As I haven't yet focused on the security site, I
wasn't sure that it was authentication, but the error didn't seem to reflect
such a problem. Eventually, I need to be able to pass through a security
context (I set an RS credential when going against the target web service
directly). Again, the goal is to use the ReportViewer web control on the
web server to make requests to Reporting Services on the database server via
the middle tier application server.
Does anyone have suggestions as to why this isn't working?
Thanks,
--Stan
(config files follow)
web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="microsoft.web.services3"
type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration,
Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />
</configSections>
<system.web>
<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter,
Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
<soapServerProtocolFactory
type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3,
Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</webServices>
<compilation>
<assemblies>
<add assembly="Microsoft.Web.Services3, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<httpHandlers>
<add type="Microsoft.Web.Services3.Messaging.SoapHttpRouter,
Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" path="ReportService.asmx" verb="*" />
</httpHandlers>
</system.web>
<microsoft.web.services3>
<referral>
<cache name="C:\Inetpub\wwwroot\WSETestRouter\referralcache.config" />
</referral>
<diagnostics>
<trace enabled="true" input="InputTrace.webinfo"
output="OutputTrace.webinfo" />
<detailedErrors enabled="true" />
</diagnostics>
</microsoft.web.services3>
</configuration>
referralcache.config:
<?xml version="1.0"?>
<!--
Perimeter Service Router referral cache test
-->
<r:referrals xmlns:r="
http://schemas.xmlsoap.org/ws/2001/10/referral"> <r:ref>
<r:for>
<r:exact>http://localhost/WSETestRouter/ReportService.asmx</r:exact>
</r:for>
<r:if />
<r:go>
<r:via>http://devsql2005/reportserver/reportservice.asmx</r:via>
</r:go>
<r:refId>uuid:2921908E-0BD2-44e5-9F75-19581F9DD7CA</r:refId>
</r:ref>
</r:referrals>