Groups | Blog | Home
all groups > dotnet web services enhancements > may 2007 >

dotnet web services enhancements : WSE003: The input was not a valid SOAP message while attempting basic router for SQL 2005 Reporting Services


Stan Spotts
5/8/2007 3:46:25 PM
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>


stcheng NO[at]SPAM online.microsoft.com
5/9/2007 3:39:12 AM
Hi Stan,

From your description, you're encountering some problem about using WS
router (WSE 3) for your web application which use reportviewer to visit
backend SQL server reporting service report, correct?

Based on my understanding, the reportviewer internally use reporting
service webservice to communication with the backend SSRS server(if you're
using server report). And this webservice is a standard ASP.NET
webservice(use .net 2.0 if you're using SSRS 2005). And there is no WSE
extension on this service.

However, WS router is a WSE 3.0 specific feature which rely on some
customized soap headers in the SOAP message which is generated and verfied
by the WSE runtime pipeline. So if you use this feature for standard
ASP.NET webservice, it may raise error since there is no expected SOAP
header information for the WSE intermediate server to perform the message
routering.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead



==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.



Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.

==================================================



Stan Spotts
5/9/2007 11:16:01 AM
Steven - the documentation looks like it says that this should be
transparent to the front end control, and would be unless the RS web service
itself implemented WSE. However, it looks like I need to somehow make
availabel from the perimeter service router a copy of the WSDL with the
URI's changed. You'd think there'd be a <wsdl> tag in the referral cache
configuration schema that let you point to a URI that returned this... So
there's that to figure out...

From the Web Service Security book from patterns & practices, Chapter 6
(Service Deployment):
Configure the External Application

The external application requires no special configuration to use the
perimeter service router in order to communicate with resources on the
private network. However, the Web service publisher must create a copy of
the service's WSDL file and change the URI to the perimeter service router's
URI for external clients. The external copy of the WSDL file should contain
all of the Web service operations that the router publicly exposes. This is
the WSDL that the external application would use to generate its proxy to
communicate with the Web service.

--Stan


[quoted text, click to view]

stcheng NO[at]SPAM online.microsoft.com
5/14/2007 1:23:51 AM
Hi Stan,

Regarding on this issue, I've noticed that you have also contacted some
other Business Applicaion support engineer at Microsoft, correct? I saw
that some other engineers have also provided some suggestion on this, some
are related to use the WCF specific feature. Have you got the info or any
progress?

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead


AddThis Social Bookmark Button