<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>BizBert - Web Services</title>
    <link>http://www.bizbert.com/bizbert/</link>
    <description>BizTalk Uncovered, Discussed, and Promoted</description>
    <language>en-us</language>
    <copyright>Daniel Probert</copyright>
    <lastBuildDate>Sat, 01 Sep 2007 10:16:55 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>bizbert@probertsolutions.com</managingEditor>
    <webMaster>bizbert@probertsolutions.com</webMaster>
    <item>
      <trackback:ping>http://www.bizbert.com/bizbert/Trackback.aspx?guid=c04612b1-f77d-4cb8-bdb5-ff6acf5b1790</trackback:ping>
      <pingback:server>http://www.bizbert.com/bizbert/pingback.aspx</pingback:server>
      <pingback:target>http://www.bizbert.com/bizbert/PermaLink,guid,c04612b1-f77d-4cb8-bdb5-ff6acf5b1790.aspx</pingback:target>
      <dc:creator>Daniel Probert</dc:creator>
      <wfw:comment>http://www.bizbert.com/bizbert/CommentView,guid,c04612b1-f77d-4cb8-bdb5-ff6acf5b1790.aspx</wfw:comment>
      <wfw:commentRss>http://www.bizbert.com/bizbert/SyndicationService.asmx/GetEntryCommentsRss?guid=c04612b1-f77d-4cb8-bdb5-ff6acf5b1790</wfw:commentRss>
      <title>How to validate Xml Documents against schemas in BizTalk</title>
      <guid isPermaLink="false">http://www.bizbert.com/bizbert/PermaLink,guid,c04612b1-f77d-4cb8-bdb5-ff6acf5b1790.aspx</guid>
      <link>http://www.bizbert.com/bizbert/2007/09/01/How+To+Validate+Xml+Documents+Against+Schemas+In+BizTalk.aspx</link>
      <pubDate>Sat, 01 Sep 2007 10:16:55 GMT</pubDate>
      <description>I got asked a question the other day: &lt;i&gt;How would you validate an incoming message against a schema if the message was the request part of a request-response pair and you wanted to return a response if the request wasn't valid?&lt;/i&gt;&lt;br&gt;&lt;br&gt;In the example given, an orchestration had been exposed as a web service, and the requirement was to validate the incoming message. If the message did not validate they wanted to return a response message with an error message in it.&lt;br&gt;&lt;br&gt;I gave two of the ways I would do it, but that wasn't what they were expecting: they were expecting the simplest (and computationally slowest) way of doing it. And I realised that many people use this mechanism as they &lt;i&gt;don't know there's any other way&lt;/i&gt;.&lt;br&gt;&lt;br&gt;Why do I say this? I'll explain as I give my solutions.&lt;br&gt;First of all: The solution that was expected was to use an orchestration to do the validation - as the person explained to me, that was the only way to get the response message back to the same "connection" i.e. have it go back out as a response to the matching request.&lt;br&gt;As you'll see this is not true.&lt;br&gt;In this post I'll cover the ways to do validation.&lt;br&gt;In the next post, I'll cover how you correlate the response back to the client who is waiting for a response.&lt;br&gt;&lt;br&gt;Let me say one thing: BizTalk is not magic. There is no magic (thanks &lt;a href="http://en.wikipedia.org/wiki/Nakor"&gt;Nakor&lt;/a&gt;). There's simply some COM+ applications, some .NET assemblies, instances of a Windows Service, some database tables... and a lot of unmanaged code.&lt;br&gt;What gets confusing[...]&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=c04612b1-f77d-4cb8-bdb5-ff6acf5b1790"/&gt;</description>
      <comments>http://www.bizbert.com/bizbert/CommentView,guid,c04612b1-f77d-4cb8-bdb5-ff6acf5b1790.aspx</comments>
      <category>BizTalk General</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://www.bizbert.com/bizbert/Trackback.aspx?guid=03263042-8688-4d92-b100-05d5a841559e</trackback:ping>
      <pingback:server>http://www.bizbert.com/bizbert/pingback.aspx</pingback:server>
      <pingback:target>http://www.bizbert.com/bizbert/PermaLink,guid,03263042-8688-4d92-b100-05d5a841559e.aspx</pingback:target>
      <dc:creator>Daniel Probert</dc:creator>
      <wfw:comment>http://www.bizbert.com/bizbert/CommentView,guid,03263042-8688-4d92-b100-05d5a841559e.aspx</wfw:comment>
      <wfw:commentRss>http://www.bizbert.com/bizbert/SyndicationService.asmx/GetEntryCommentsRss?guid=03263042-8688-4d92-b100-05d5a841559e</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Validating Schemas in WebMethods using Attributes</title>
      <guid isPermaLink="false">http://www.bizbert.com/bizbert/PermaLink,guid,03263042-8688-4d92-b100-05d5a841559e.aspx</guid>
      <link>http://www.bizbert.com/bizbert/2007/04/15/Validating+Schemas+In+WebMethods+Using+Attributes.aspx</link>
      <pubDate>Sun, 15 Apr 2007 16:44:54 GMT</pubDate>
      <description>One of the most annoying things in BizTalk is when an error is generated in a Receive Pipeline indicating that a message has been suspended because of the content of the message doesn't validate against the given schema (for the moment, we'll gloss over the fact that in an ideal situation this should only ever happen during testing).&lt;br&gt;&lt;br&gt;Using BizTalk 2006's new &lt;a href="http://msdn2.microsoft.com/en-us/library/aa578516.aspx" target="_new"&gt;Failed Message Routing&lt;/a&gt; feature, it's fairly simple to write something which can deal with this situation (using either an Orchestration or SendPort subscribing to the Error Report). &lt;br&gt;Returning a message back to a Web Service caller indicating that there is something wrong with their message, is non-trivial – it's possible, but requires some in-depth knowledge of how instance subscriptions work.&lt;br&gt;&lt;br&gt;However, there is an easier way: validating the message at the endpoint (i.e. inside the Web Service itself).&lt;br&gt;&lt;a href="http://pluralsight.com/blogs/aaron/" target="_new"&gt;Aaron Skonnard&lt;/a&gt; and Dan Sullivan wrote an article for MSDN magazine in July 2003 on &lt;a href="http://msdn.microsoft.com/msdnmag/issues/03/07/xmlschemavalidation/default.aspx" target="_new"&gt;how to implement attribute based schema validation for Web Method parameters&lt;/a&gt;.&lt;br&gt;&lt;br&gt;It's a great idea: decorate a Web Method with an attribute, and when the web method is called then any messages received will be validated against their schemas – if they don't validate, then a SOAP Fault is returned back to the caller[...]&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=03263042-8688-4d92-b100-05d5a841559e"/&gt;</description>
      <comments>http://www.bizbert.com/bizbert/CommentView,guid,03263042-8688-4d92-b100-05d5a841559e.aspx</comments>
      <category>BizTalk General</category>
      <category>Web Services</category>
    </item>
    <item>
      <trackback:ping>http://www.bizbert.com/bizbert/Trackback.aspx?guid=b51fe72f-2d73-4d02-bcd9-3b7165ec474d</trackback:ping>
      <pingback:server>http://www.bizbert.com/bizbert/pingback.aspx</pingback:server>
      <pingback:target>http://www.bizbert.com/bizbert/PermaLink,guid,b51fe72f-2d73-4d02-bcd9-3b7165ec474d.aspx</pingback:target>
      <dc:creator>Daniel Probert</dc:creator>
      <wfw:comment>http://www.bizbert.com/bizbert/CommentView,guid,b51fe72f-2d73-4d02-bcd9-3b7165ec474d.aspx</wfw:comment>
      <wfw:commentRss>http://www.bizbert.com/bizbert/SyndicationService.asmx/GetEntryCommentsRss?guid=b51fe72f-2d73-4d02-bcd9-3b7165ec474d</wfw:commentRss>
      <title>Web Services and the 15 Second Delay</title>
      <guid isPermaLink="false">http://www.bizbert.com/bizbert/PermaLink,guid,b51fe72f-2d73-4d02-bcd9-3b7165ec474d.aspx</guid>
      <link>http://www.bizbert.com/bizbert/2007/03/10/Web+Services+And+The+15+Second+Delay.aspx</link>
      <pubDate>Sat, 10 Mar 2007 12:01:13 GMT</pubDate>
      <description>&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Background: The large(ish)
BizTalk system I've been working on for the last few months consumes a few external
Web Services. Whilst doing some early performance tuning, I noticed that I was getting
pretty serious request-response latency from the primary BizTalk Web Service... Like
over 45 secs, instead of the expected 0.5 – 2 secs... 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt; 
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Fortunately, I routinely
put tracing/audit calls in my BizTalk code which includes timing info - and I &lt;i style=""&gt;always&lt;/i&gt; log
the times around orchestration entry/exit... So I was quite surprised to see that
a request to one of the external Web Services was taking 15secs to respond... especially
as the web service was hosted (temporarily) on the same server... 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Although I didn't
have the source code, with the help of Lutz Roeder's trusty &lt;a href="http://www.aisto.com/roeder/dotnet/" target="_new"&gt;.NET
Reflector&lt;/a&gt; I was poking around the innards within minutes… and couldn't find anything
that would cause a delay of 15 secs. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;What's more, after
further testing I found that the problem only occurred the first time after IIS was
restarted. After the first time, it would return within 2 secs (still not very good,
but much better). One thing I noticed about the Web Service was that it made use of
some code in an unmanaged assembly (old school &lt;a href="http://en.wikipedia.org/wiki/C++" target="_new"&gt;C++&lt;/a&gt; DLL)... 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;On a hunch, I wrote
a simple test Web Service which simply referenced some functions in the DLL (using
the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx" target="_new"&gt;DllImport&lt;/a&gt; attribute)...
and bang, a 15 sec delay before the Web Service constructor was called.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;I also tried the
same trick in a console app... and there was no delay.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;By this time I was
fairly stumped. This issue only happened on our Load Test server: it didn't happen
on the Dev or Test servers. And it seemed to only happen to code hosted under IIS.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;I figured it was
time to dig a bit deeper and see what IIS was doing: starting up &lt;a href="http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/processmonitor.mspx" target="_new"&gt;Process
Monitor&lt;/a&gt; (to monitor file and registry access) and &lt;a href="http://www.microsoft.com/technet/sysinternals/Networking/TcpView.mspx" target="_new"&gt;TCP
View&lt;/a&gt; (to monitor network activity), I called my test Web Service.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Filtering the Process
Monitor logs to the &lt;i style=""&gt;w3wp.exe&lt;/i&gt; process (the IIS Worker Process for Application
Pools) I noticed that w3wp was reading a lot of security and cryptography keys from
the registry:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;a href="http://www.bizbert.com/bizbert/content/binary/ProcMon_Screenshot.JPG" target="_new"&gt;&lt;img src="http://www.bizbert.com/bizbert/content/binary/ProcMon_Screenshot_Sml1.JPG" title="Process Monitor screenshot showing Cryptography API registry keys being read by IIS (click to enlarge)" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Hmm. Interesting.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Then I looked at
the TCP View log. And I noticed something very interesting coming from the w3wp process:
a connection was being attempted to &lt;a href="http://crl.versign.com/" target="_new"&gt;http://crl.versign.com&lt;/a&gt; and
was being blocked.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;How do I know it
was being blocked? Well, the TCP View log showed a SYN_SENT, which appeared and was
visible for 15 secs before disappearing:&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;a href="" target="_new"&gt;&lt;img src="http://www.bizbert.com/bizbert/content/binary/TCPView_Screenshot_sml1.JPG" title="TCPView screenshot showing access to crl.microsoft.com being blocked (click to enlarge)" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Now if you're not
familiar with how &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol" target="_new"&gt;TCP
works&lt;/a&gt;, then you migh&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;t
miss the significance of this: When a TCP client attempts to contact a TCP server,
the first thing performed is a handshake. This involves the client sending a SYN,
the server responding with a SYN-ACK, and the client sending a SYN-A&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;CK-ACK.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;In the TCP View tool,
the rightmost column indicates the state of the local TCP connection end-point. You'll
see that in this case, the state is SYN_SENT: this state indicates that the local
TCP client is waiting for a SYN-ACK response from the SYN it sent.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Why would this be?
Well, many reasons, but mostly because the address can't be reached e.g. a proxy server
is required, or a firewall rule is blocking the call.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;And what's the relevance
of crl.verisign.com? A CRL (Certificate Revocation List) is used to indicate which
Certificates (issued by a Certificate Authority) are no longer valid.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;And this is only
done when you are using an assembly which has been digitally signed.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;(&lt;b style=""&gt;Note&lt;/b&gt;:
Microsoft became really really serious about CRL's back in 2001 when &lt;a href="http://support.microsoft.com/?id=293817" target="_new"&gt;VeriSign
accidentally released two Microsoft certificates&lt;/a&gt; to a third party – which meant
that the third party could sign code that appeared to have come from Microsoft).&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;So what does this
have to do w&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;ith
my Web Service and a 15&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt; second
delay?&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Looking through the
assemblies in the Web Service, I noticed that the unmanaged assembly was digitally
signed. Aha! So when the unmanaged assembly was referenced in a Web Service, IIS would
hand off control to the Windows Cryptography API (CAPI) and ask it to verify the certificate.
And this involves retrieving a CRL for the certificate.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;After doing some
more poki&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;ng
around, I found &lt;a href="http://blogs.xceedsoft.com/plantem/PermaLink,guid,3dde0262-1b7f-45d3-9a6e-164c842e422d.aspx" target="_new"&gt;this&lt;/a&gt; blog
post (from one of the developers at &lt;a href="http://xceed.com/" target="_new"&gt;Xceed
Software&lt;/a&gt;, a company specializing in .NET components).&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;The thing that drew
my attention was this comment:&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana;" lang="EN-US"&gt;Some people behind
a very strict firewall, ignoring outgoing connections instead of rejecting them, had
a timeout while loading our assemblies. That timeout (at least 15 seconds) is hardcoded
in WinVerifyTrust!&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;st1:city w:st="on"&gt;
&lt;st1:place w:st="on"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Eureka&lt;/span&gt;
&lt;/st1:place&gt;
&lt;/st1:city&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;! That's exactly
my problem!&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;And it explained
why it was only happening on our Load Test server: Our Dev and Test servers have access
to the internet, whilst the Load Test server does not: it has no proxy server configured.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;To test this theory,
I configured the Load Test server to use a proxy server. If you haven't done this
before, you can't do it via Internet Explorer settings – that only configures a proxy
for application which go via &lt;i style=""&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa385331.aspx" target="_new"&gt;wininet.dll&lt;/a&gt;&lt;/i&gt; i.e.
the Internet Explorer API, which uses the proxy server settings in the &lt;i style=""&gt;Internet
Explorer/Internet Options/Connections/LAN Settings&lt;/i&gt; panel.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;CAPI, however, uses &lt;i style=""&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa384273.aspx" target="_new"&gt;winhttp.dll&lt;/a&gt; &lt;/i&gt;(Microsoft
Windows HTTP Services). And to set the proxy server for that, you need to use the &lt;i style=""&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa384069.aspx" target="_new"&gt;proxycfg&lt;/a&gt;&lt;/i&gt; command
line tool which sets proxy server set&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;tings
for winhttp.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;If you run &lt;i style=""&gt;proxycfg
–u&lt;/i&gt;, this w&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;ill
i&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;mport your
Internet Explorer proxy server settings:&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;a href="" target="_new"&gt;&lt;img src="http://www.bizbert.com/bizbert/content/binary/proxycfg_sml.JPG" title="How to use ProxyCFG to import ProxyServer settings from Internet Explorer (click to enlarge)" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;So I did this, restarted
IIS and presto! The pr&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;oblem
went away.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;However, giving the
Load Test server access to the Internet is a fairly large security hole (at least
it is in our network, where the Load test server is behind both the firewal&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;l
and DMZ).&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;So, we contacted
the vendor who supplied the unmanaged DLL, and managed to get them to release a new
version which wasn't digitally signed. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Which solved the&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt; problem
of the latency in the Web Service (which accounted for 15 secs of the 45 secs latency).&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;Solving the remaining
30 secs latency is the subject of next week's post.&lt;br&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 12pt;"&gt;
&lt;span style="font-size: 10pt; font-family: Tahoma;" lang="EN-US"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.bizbert.com/bizbert/aggbug.ashx?id=b51fe72f-2d73-4d02-bcd9-3b7165ec474d" /&gt;</description>
      <comments>http://www.bizbert.com/bizbert/CommentView,guid,b51fe72f-2d73-4d02-bcd9-3b7165ec474d.aspx</comments>
      <category>BizTalk General</category>
      <category>Web Services</category>
    </item>
  </channel>
</rss>