Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Consume service with WCF-Custom problem

36 views
Skip to first unread message

Ryan CrawCour

unread,
Nov 4, 2008, 2:30:46 PM11/4/08
to
Hi All,

We have a WCF service using some custom binding stuff which we're
hooking an orch up to; so we've gone with the WCF-Custom adapter.

We're signing (not encrypting) all messages going to the service.
The service gets the request fine, signed correctly, processes the
request and sends the response.
When Bts gets the response it logs the following;

The adapter failed to transmit message going to send port
"SP_ExampleService_CustomSecure" with URL "http://ComputerName/
ExampleService.Host/MyService.svc". It will be retransmitted after the
retry interval specified for this Send Port.
Details:"System.ServiceModel.Security.MessageSecurityException: The
'Body', 'http://www.w3.org/2003/05/soap-envelope' required message
part was not encrypted.

Why is it expecting the body part to be encrypted?
How do I tell it to Sign only and not EncryptAndSign, which is what I
assume it is trying to do.

The call to the service from a simple .NET console app works fine, and
I've imported that config into the WCF-Custom adapter. So somehow,
somewhere Bts seems to default to EncryptAndSign.

I've even tried setting the Transport level protection on the message
to Sign and it didn't seem to make a difference.

Anybody got any ideas?

Dan Rosanova

unread,
Nov 4, 2008, 5:40:42 PM11/4/08
to
Maybe I missed it, but are you using a Binding Type under the Binding
tab? Well obviously you are, but which one are you using? I've
noticed that sometimes you have to set these settings in two places.

Kind Regards,
-Dan

Ryan CrawCour

unread,
Nov 4, 2008, 7:18:27 PM11/4/08
to

We're using a custombinding element.
With the following options
security
mtom message encoding
http transport

Paul Somers[MVP]

unread,
Nov 5, 2008, 2:49:13 AM11/5/08
to
Hi,

Can you paste your binding, as the security in bts is a little different,
the defaults for security, in bts as opposed to wcf.

Paul.

"Ryan CrawCour" <ryancr...@gmail.com> wrote in message
news:e522fe3d-1362-45ed...@n1g2000prb.googlegroups.com...

Ryan CrawCour

unread,
Nov 5, 2008, 3:24:06 AM11/5/08
to
Hi Paul,

Should I just export the custom binding config and post this? Do you
need anything from the service side, or just from the Bts side?

Thx
Ryan

On Nov 5, 8:49 pm, "Paul Somers[MVP]" <p...@somers.com> wrote:
> Hi,
>
> Can you paste your binding, as the security in bts is a little different,
> the defaults for security, in bts as opposed to wcf.
>
> Paul.
>

> "Ryan CrawCour" <ryancrawc...@gmail.com> wrote in message

Ryan CrawCour

unread,
Nov 5, 2008, 3:53:21 PM11/5/08
to
Hi;

Find below the config for the WCF Send port;

<SendPort
Name="WcfSendPort_ReferenceTableService_CustomBinding_IReferenceTableService"
IsStatic="true" IsTwoWay="true" BindingOption="1">
<Description>service "ReferenceTableService" port
"CustomBinding_IReferenceTableService"</Description>
<TransmitPipeline
Name="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"
FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.PassThruTransmit,
Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" Type="2"
TrackingOption="ServiceStartEnd MessageSendReceive PipelineEvents"
Description="" />
<PrimaryTransport>
<Address>http://localhost:2884/ReferenceTableService.svc</
Address>
<TransportType Name="WCF-Custom" Capabilities="907"
ConfigurationClsid="af081f69-38ca-4d5b-87df-f0344b12557a" />
<TransportTypeData>&lt;CustomProps&gt;&lt;OutboundXmlTemplate
vt="8"&gt;&amp;lt;bts-msg-body xmlns="http://www.microsoft.com/schemas/
bts2007" encoding="xml"/&amp;gt;&lt;/
OutboundXmlTemplate&gt;&lt;PropagateFaultMessage vt="11"&gt;-1&lt;/
PropagateFaultMessage&gt;&lt;ProxyUserName vt="8" /
&gt;&lt;EndpointBehaviorConfiguration vt="8"&gt;&amp;lt;behavior
name="EndpointBehavior"&amp;gt;&amp;lt;clientCredentials&amp;gt;&amp;lt;clientCertificate
findValue="NIS Framework Service" x509FindType="FindBySubjectName" /
&amp;gt;&amp;lt;/clientCredentials&amp;gt;&amp;lt;/
behavior&amp;gt;&lt;/
EndpointBehaviorConfiguration&gt;&lt;OutboundBodyLocation
vt="8"&gt;UseBodyElement&lt;/OutboundBodyLocation&gt;&lt;StaticAction
vt="8"&gt;&amp;lt;BtsActionMapping xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/
XMLSchema"&amp;gt;
&amp;lt;Operation Name="Get"
Action="urn:hp:nis:framework:referencetableservice:3.0/
IReferenceTableService/Get" /&amp;gt;
&amp;lt;Operation Name="Add"
Action="urn:hp:nis:framework:referencetableservice:3.0/
IReferenceTableService/Add" /&amp;gt;
&amp;lt;Operation Name="Update"
Action="urn:hp:nis:framework:referencetableservice:3.0/
IReferenceTableService/Update" /&amp;gt;
&amp;lt;Operation Name="FindAll"
Action="urn:hp:nis:framework:referencetableservice:3.0/
IReferenceTableService/FindAll" /&amp;gt;
&amp;lt;Operation Name="FindTables"
Action="urn:hp:nis:framework:referencetableservice:3.0/
IReferenceTableService/FindTables" /&amp;gt;
&amp;lt;/BtsActionMapping&amp;gt;&lt;/
StaticAction&gt;&lt;BindingConfiguration vt="8"&gt;&amp;lt;binding
name="CustomBinding_IReferenceTableService"&amp;gt;&amp;lt;security
defaultAlgorithmSuite="Basic128Rsa15"
authenticationMode="MutualCertificate" requireDerivedKeys="false"
securityHeaderLayout="Lax" includeTimestamp="true"
keyEntropyMode="CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt"
messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireSignatureConfirmation="false"&amp;gt;&amp;lt;localClientSettings
cacheCookies="true" detectReplays="true" replayCacheSize="900000"
maxClockSkew="00:05:00" maxCookieCachingTime="Infinite"
replayWindow="00:05:00" sessionKeyRenewalInterval="10:00:00"
sessionKeyRolloverInterval="00:05:00"
reconnectTransportOnFailure="true"
timestampValidityDuration="00:05:00"
cookieRenewalThresholdPercentage="60" /
&amp;gt;&amp;lt;localServiceSettings detectReplays="true"
issuedCookieLifetime="10:00:00" maxStatefulNegotiations="128"
replayCacheSize="900000" maxClockSkew="00:05:00"
negotiationTimeout="00:01:00" replayWindow="00:05:00"
inactivityTimeout="00:02:00" sessionKeyRenewalInterval="15:00:00"
sessionKeyRolloverInterval="00:05:00"
reconnectTransportOnFailure="true" maxPendingSessions="128"
maxCachedCookies="1000" timestampValidityDuration="00:05:00" /
&amp;gt;&amp;lt;secureConversationBootstrap /&amp;gt;&amp;lt;/
security&amp;gt;&amp;lt;mtomMessageEncoding maxReadPoolSize="64"
maxWritePoolSize="16" messageVersion="Soap12" maxBufferSize="65536"
writeEncoding="utf-8"&amp;gt;&amp;lt;readerQuotas maxDepth="32"
maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" /&amp;gt;&amp;lt;/
mtomMessageEncoding&amp;gt;&amp;lt;httpTransport
manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false"
authenticationScheme="Anonymous" bypassProxyOnLocal="false"
hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true"
maxBufferSize="65536" proxyAuthenticationScheme="Anonymous" realm=""
transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" /&amp;gt;&amp;lt;/binding&amp;gt;&lt;/
BindingConfiguration&gt;&lt;InboundNodeEncoding vt="8"&gt;Xml&lt;/
InboundNodeEncoding&gt;&lt;UseSSO vt="11"&gt;0&lt;/
UseSSO&gt;&lt;ProxyAddress vt="8" /&gt;&lt;AffiliateApplicationName
vt="8" /&gt;&lt;BindingType vt="8"&gt;customBinding&lt;/
BindingType&gt;&lt;InboundBodyLocation vt="8"&gt;UseBodyElement&lt;/
InboundBodyLocation&gt;&lt;UserName vt="8" /&gt;&lt;Identity
vt="8"&gt;&amp;lt;identity&amp;gt;
&amp;lt;certificateReference storeName="My"
storeLocation="CurrentUser" x509FindType="FindBySubjectName"
findValue="NIS Framework Service" isChainIncluded="False" /&amp;gt;
&amp;lt;/identity&amp;gt;&lt;/
Identity&gt;&lt;InboundBodyPathExpression vt="8" /&gt;&lt;/
CustomProps&gt;</TransportTypeData>
<RetryCount>3</RetryCount>
<RetryInterval>5</RetryInterval>
<ServiceWindowEnabled>false</ServiceWindowEnabled>
<FromTime>2000-01-01T00:00:00</FromTime>
<ToTime>2000-01-01T23:59:59</ToTime>
<Primary>true</Primary>
<OrderedDelivery>false</OrderedDelivery>
<DeliveryNotification>1</DeliveryNotification>
<SendHandler Name="BizTalkServerApplication"
HostTrusted="false">
<TransportType Name="WCF-Custom" Capabilities="907"
ConfigurationClsid="af081f69-38ca-4d5b-87df-f0344b12557a" />
</SendHandler>
</PrimaryTransport>
<SecondaryTransport>
<Address />
<RetryCount>3</RetryCount>
<RetryInterval>5</RetryInterval>
<ServiceWindowEnabled>false</ServiceWindowEnabled>
<FromTime>2008-11-04T11:00:00</FromTime>
<ToTime>2008-11-05T10:59:59</ToTime>
<Primary>false</Primary>
<OrderedDelivery>false</OrderedDelivery>
<DeliveryNotification>1</DeliveryNotification>
<SendHandler xsi:nil="true" />
</SecondaryTransport>
<ReceivePipeline
Name="Microsoft.BizTalk.DefaultPipelines.XMLReceive"
FullyQualifiedName="Microsoft.BizTalk.DefaultPipelines.XMLReceive,
Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" Type="1"
TrackingOption="ServiceStartEnd MessageSendReceive PipelineEvents"
Description="" />
<ReceivePipelineData xsi:nil="true" />
<Tracking>0</Tracking>
<Filter />
<Transforms />
<InboundTransforms />
<OrderedDelivery>false</OrderedDelivery>
<Priority>5</Priority>
<StopSendingOnFailure>false</StopSendingOnFailure>
<RouteFailedMessage>false</RouteFailedMessage>
<ApplicationName>WCFInterop</ApplicationName>
</SendPort>

Hope this helps
Ciao
Ryan

> >   http transport- Hide quoted text -
>
> - Show quoted text -

0 new messages