Discussion:
.NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20 seconds (compared to .NET 1.1) under Citrix
(too old to reply)
Leon Finker
2005-12-09 03:38:07 UTC
Permalink
Hi,

I have a problem where creating a webservice proxy class takes from 15-20
seconds. This happens under Citrix environment. I was able to see what
csc.exe is doing. I'm not 100% sure if I caught it at the right moment. Let
me know if more info is needed. Here is the callstack:

ntdll!NtWaitForSingleObject+0xc
cryptnet!I_CryptNetIsConnected+0x205
cryptnet!I_CryptNetIsConnected+0x104
cryptnet!CryptGetObjectUrl+0x4b9
cryptnet!I_CryptNetIsConnected+0x187e
cryptnet!CryptGetObjectUrl+0x319
cryptnet!CryptGetObjectUrl+0x273
cryptnet!CryptGetTimeValidObject+0xa0
cryptnet!CryptGetTimeValidObject+0x4d
cryptnet!I_CryptNetIsConnected+0xef0
cryptnet!CertDllVerifyRevocation+0x38c
*** ERROR: Symbol file could not be found. Defaulted to export symbols for
C:\WINDOWS\system32\CRYPT32.dll -
cryptnet!CertDllVerifyRevocation+0x101
CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
CRYPT32!CertVerifyRevocation+0xb5
CRYPT32!I_CryptCreateLruCache+0x34b0
CRYPT32!I_CryptCreateLruCache+0x5175
CRYPT32!I_CryptCreateLruCache+0x7006
CRYPT32!I_CryptCreateLruCache+0x8a2a
CRYPT32!I_CryptCreateLruCache+0x8a7b

The process that calls csc.exe is in:
0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
System.Threading.Monitor.Enter(System.Object)
0012f590 69919900
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()

Do I need to disable cert revocation verification in registry (i don't
remember how to do it)? Is this a known problem? How can I work around this?
This appears to be the only problem so far under Citrix. Thanks for any
help!
Leon Finker
2005-12-09 04:20:51 UTC
Permalink
Another thread in csc.exe has the following callstack:

ntdll.dll!NtWaitForSingleObject+0xc
mswsock.dll+0x39d1
ws2_32.dll!select+0x99
WINHTTP.dll!WinHttpReceiveResponse+0xc613
WINHTTP.dll!WinHttpReceiveResponse+0xc762
WINHTTP.dll!WinHttpReceiveResponse+0x855e
WINHTTP.dll!WinHttpTimeToSystemTime+0x6407
WINHTTP.dll!WinHttpReceiveResponse+0x855e
WINHTTP.dll!WinHttpTimeToSystemTime+0x8169
WINHTTP.dll!WinHttpReceiveResponse+0x855e
WINHTTP.dll!WinHttpTimeToSystemTime+0x6de5
WINHTTP.dll!WinHttpReceiveResponse+0x855e
WINHTTP.dll!WinHttpTimeToSystemTime+0x28b2
WINHTTP.dll!WinHttpReceiveResponse+0x8668
WINHTTP.dll!WinHttpSetOption+0x573
WINHTTP.dll!WinHttpSendRequest+0x1db
cryptnet.dll!I_CryptNetEnumUrlCacheEntry+0x1ebd
csc.exe+0x10053

The Citrix machine doesn't have connectivity to the outside.
Post by Leon Finker
Hi,
I have a problem where creating a webservice proxy class takes from 15-20
seconds. This happens under Citrix environment. I was able to see what
csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
ntdll!NtWaitForSingleObject+0xc
cryptnet!I_CryptNetIsConnected+0x205
cryptnet!I_CryptNetIsConnected+0x104
cryptnet!CryptGetObjectUrl+0x4b9
cryptnet!I_CryptNetIsConnected+0x187e
cryptnet!CryptGetObjectUrl+0x319
cryptnet!CryptGetObjectUrl+0x273
cryptnet!CryptGetTimeValidObject+0xa0
cryptnet!CryptGetTimeValidObject+0x4d
cryptnet!I_CryptNetIsConnected+0xef0
cryptnet!CertDllVerifyRevocation+0x38c
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for C:\WINDOWS\system32\CRYPT32.dll -
cryptnet!CertDllVerifyRevocation+0x101
CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
CRYPT32!CertVerifyRevocation+0xb5
CRYPT32!I_CryptCreateLruCache+0x34b0
CRYPT32!I_CryptCreateLruCache+0x5175
CRYPT32!I_CryptCreateLruCache+0x7006
CRYPT32!I_CryptCreateLruCache+0x8a2a
CRYPT32!I_CryptCreateLruCache+0x8a7b
0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
System.Threading.Monitor.Enter(System.Object)
0012f590 69919900
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
Do I need to disable cert revocation verification in registry (i don't
remember how to do it)? Is this a known problem? How can I work around this?
This appears to be the only problem so far under Citrix. Thanks for any
help!
Steven Cheng[MSFT]
2005-12-09 12:16:08 UTC
Permalink
Hi Leon,

Welcome to MSDN newsgroup.
From your description you're encountering some problem when creating
webservice proxy in a .net 2.0 application, which will take long time with
no responding .... ,yes?

Are you generating the webservcie proxy through VS2005 or the wsdl.exe
tool? Also, I think this should be a service specific behavior. Can you
repro the problem through a simplified WSDL document? If so, it'd be
helpful if you can provide us this one so that we can have some test on our
side...

Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)



--------------------
| From: "Leon Finker" <***@nospam.nospam>
| References: <#YQz4HH$***@TK2MSFTNGP11.phx.gbl>
| Subject: Re: .NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20
seconds (compared to .NET 1.1) under Citrix
| Date: Thu, 8 Dec 2005 23:20:51 -0500
| Lines: 68
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| X-RFC2646: Format=Flowed; Response
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| Message-ID: <#h7PyfH$***@tk2msftngp13.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.clr
| NNTP-Posting-Host: ool-182d1f3e.dyn.optonline.net 24.45.31.62
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl microsoft.public.dotnet.framework.clr:14774
| X-Tomcat-NG: microsoft.public.dotnet.framework.clr
|
| Another thread in csc.exe has the following callstack:
|
| ntdll.dll!NtWaitForSingleObject+0xc
| mswsock.dll+0x39d1
| ws2_32.dll!select+0x99
| WINHTTP.dll!WinHttpReceiveResponse+0xc613
| WINHTTP.dll!WinHttpReceiveResponse+0xc762
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6407
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x8169
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6de5
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x28b2
| WINHTTP.dll!WinHttpReceiveResponse+0x8668
| WINHTTP.dll!WinHttpSetOption+0x573
| WINHTTP.dll!WinHttpSendRequest+0x1db
| cryptnet.dll!I_CryptNetEnumUrlCacheEntry+0x1ebd
| csc.exe+0x10053
|
| The Citrix machine doesn't have connectivity to the outside.
|
| "Leon Finker" <***@nospam.nospam> wrote in message
| news:%23YQz4HH$***@TK2MSFTNGP11.phx.gbl...
| > Hi,
| >
| > I have a problem where creating a webservice proxy class takes from
15-20
| > seconds. This happens under Citrix environment. I was able to see what
| > csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
| > Let me know if more info is needed. Here is the callstack:
| >
| > ntdll!NtWaitForSingleObject+0xc
| > cryptnet!I_CryptNetIsConnected+0x205
| > cryptnet!I_CryptNetIsConnected+0x104
| > cryptnet!CryptGetObjectUrl+0x4b9
| > cryptnet!I_CryptNetIsConnected+0x187e
| > cryptnet!CryptGetObjectUrl+0x319
| > cryptnet!CryptGetObjectUrl+0x273
| > cryptnet!CryptGetTimeValidObject+0xa0
| > cryptnet!CryptGetTimeValidObject+0x4d
| > cryptnet!I_CryptNetIsConnected+0xef0
| > cryptnet!CertDllVerifyRevocation+0x38c
| > *** ERROR: Symbol file could not be found. Defaulted to export symbols
| > for C:\WINDOWS\system32\CRYPT32.dll -
| > cryptnet!CertDllVerifyRevocation+0x101
| > CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
| > CRYPT32!CertVerifyRevocation+0xb5
| > CRYPT32!I_CryptCreateLruCache+0x34b0
| > CRYPT32!I_CryptCreateLruCache+0x5175
| > CRYPT32!I_CryptCreateLruCache+0x7006
| > CRYPT32!I_CryptCreateLruCache+0x8a2a
| > CRYPT32!I_CryptCreateLruCache+0x8a7b
| >
| > The process that calls csc.exe is in:
| > 0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
| > System.Threading.Monitor.Enter(System.Object)
| > 0012f590 69919900
| > System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
| >
| > Do I need to disable cert revocation verification in registry (i don't
| > remember how to do it)? Is this a known problem? How can I work around
| > this?
| > This appears to be the only problem so far under Citrix. Thanks for any
| > help!
| >
|
|
|
Leon Finker
2005-12-09 13:10:46 UTC
Permalink
No, the proxy class was generated in .NET 1.1 and I'm running .NET 1.1
assemblies under .NET 2.0 by specifying the requiredRuntime in .config file.
We are also doing our own CLR hosting and specifying 2.0 version (but that
shouldn't matter). So, all of the assemblies are .NET 1.1 assemblies. But
same code works fine on non Citrix machine under same conditions otherwise.
Yes, the problem definitely occurs when I create web service proxy which has
structures for web method parameters. In this case csc.exe has to be invoked
to generate the code for xml serialization of those structures. It's not
just csc.exe that blocks on something.

The code in SoapHttpClientProtocol..ctor() also blocks and waits for
something before even creating the csc.exe process.

Just to clarify, the problem is not in the invocation of web method. The
problem is in creating the class object (i.e.: SomeSvc svc = new
SomeSvc() ). I have isolated just web proxy class object creation line as
the culprit (that's for sure).

As far as I saw, it didn't happen under admin account that I use for
development/debugging under Citrix. Only happens under regular AD User
accounts that are created for Citrix . I'll gather more information and
update the post.

Thanks for getting back!
Post by Steven Cheng[MSFT]
Hi Leon,
Welcome to MSDN newsgroup.
From your description you're encountering some problem when creating
webservice proxy in a .net 2.0 application, which will take long time with
no responding .... ,yes?
Are you generating the webservcie proxy through VS2005 or the wsdl.exe
tool? Also, I think this should be a service specific behavior. Can you
repro the problem through a simplified WSDL document? If so, it'd be
helpful if you can provide us this one so that we can have some test on our
side...
Thanks,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| Subject: Re: .NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20
seconds (compared to .NET 1.1) under Citrix
| Date: Thu, 8 Dec 2005 23:20:51 -0500
| Lines: 68
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| X-RFC2646: Format=Flowed; Response
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| Newsgroups: microsoft.public.dotnet.framework.clr
| NNTP-Posting-Host: ool-182d1f3e.dyn.optonline.net 24.45.31.62
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl microsoft.public.dotnet.framework.clr:14774
| X-Tomcat-NG: microsoft.public.dotnet.framework.clr
|
|
| ntdll.dll!NtWaitForSingleObject+0xc
| mswsock.dll+0x39d1
| ws2_32.dll!select+0x99
| WINHTTP.dll!WinHttpReceiveResponse+0xc613
| WINHTTP.dll!WinHttpReceiveResponse+0xc762
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6407
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x8169
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6de5
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x28b2
| WINHTTP.dll!WinHttpReceiveResponse+0x8668
| WINHTTP.dll!WinHttpSetOption+0x573
| WINHTTP.dll!WinHttpSendRequest+0x1db
| cryptnet.dll!I_CryptNetEnumUrlCacheEntry+0x1ebd
| csc.exe+0x10053
|
| The Citrix machine doesn't have connectivity to the outside.
|
| > Hi,
| >
| > I have a problem where creating a webservice proxy class takes from
15-20
| > seconds. This happens under Citrix environment. I was able to see what
| > csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
| >
| > ntdll!NtWaitForSingleObject+0xc
| > cryptnet!I_CryptNetIsConnected+0x205
| > cryptnet!I_CryptNetIsConnected+0x104
| > cryptnet!CryptGetObjectUrl+0x4b9
| > cryptnet!I_CryptNetIsConnected+0x187e
| > cryptnet!CryptGetObjectUrl+0x319
| > cryptnet!CryptGetObjectUrl+0x273
| > cryptnet!CryptGetTimeValidObject+0xa0
| > cryptnet!CryptGetTimeValidObject+0x4d
| > cryptnet!I_CryptNetIsConnected+0xef0
| > cryptnet!CertDllVerifyRevocation+0x38c
| > *** ERROR: Symbol file could not be found. Defaulted to export symbols
| > for C:\WINDOWS\system32\CRYPT32.dll -
| > cryptnet!CertDllVerifyRevocation+0x101
| > CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
| > CRYPT32!CertVerifyRevocation+0xb5
| > CRYPT32!I_CryptCreateLruCache+0x34b0
| > CRYPT32!I_CryptCreateLruCache+0x5175
| > CRYPT32!I_CryptCreateLruCache+0x7006
| > CRYPT32!I_CryptCreateLruCache+0x8a2a
| > CRYPT32!I_CryptCreateLruCache+0x8a7b
| >
| > 0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
| > System.Threading.Monitor.Enter(System.Object)
| > 0012f590 69919900
| > System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
| >
| > Do I need to disable cert revocation verification in registry (i don't
| > remember how to do it)? Is this a known problem? How can I work around
| > this?
| > This appears to be the only problem so far under Citrix. Thanks for any
| > help!
| >
|
|
|
Leon Finker
2005-12-12 04:38:59 UTC
Permalink
The problem is just as it was in .NET 1.1. It's CRL (cert. revocation list)
verification done by wintrust API, which .NET is using. It's timing out.
However, in .NET 1.1 there probably weren't any authenticode signed assembly
dependencies when using SoapHttpClient and csc.exe for XML serialization
because same code doesn't block under .NET 1.1.

By disabling CRL verification for the user, the problem disappears under
2.0. First I see connection being made to crl.microsoft.com and then to
crl.verisign.com. Both either fail or timeout, but this continues for good
~10 seconds per csc.exe invocation as well as in main host executable.
Post by Steven Cheng[MSFT]
Hi Leon,
Welcome to MSDN newsgroup.
From your description you're encountering some problem when creating
webservice proxy in a .net 2.0 application, which will take long time with
no responding .... ,yes?
Are you generating the webservcie proxy through VS2005 or the wsdl.exe
tool? Also, I think this should be a service specific behavior. Can you
repro the problem through a simplified WSDL document? If so, it'd be
helpful if you can provide us this one so that we can have some test on our
side...
Thanks,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| Subject: Re: .NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20
seconds (compared to .NET 1.1) under Citrix
| Date: Thu, 8 Dec 2005 23:20:51 -0500
| Lines: 68
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| X-RFC2646: Format=Flowed; Response
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| Newsgroups: microsoft.public.dotnet.framework.clr
| NNTP-Posting-Host: ool-182d1f3e.dyn.optonline.net 24.45.31.62
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl microsoft.public.dotnet.framework.clr:14774
| X-Tomcat-NG: microsoft.public.dotnet.framework.clr
|
|
| ntdll.dll!NtWaitForSingleObject+0xc
| mswsock.dll+0x39d1
| ws2_32.dll!select+0x99
| WINHTTP.dll!WinHttpReceiveResponse+0xc613
| WINHTTP.dll!WinHttpReceiveResponse+0xc762
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6407
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x8169
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x6de5
| WINHTTP.dll!WinHttpReceiveResponse+0x855e
| WINHTTP.dll!WinHttpTimeToSystemTime+0x28b2
| WINHTTP.dll!WinHttpReceiveResponse+0x8668
| WINHTTP.dll!WinHttpSetOption+0x573
| WINHTTP.dll!WinHttpSendRequest+0x1db
| cryptnet.dll!I_CryptNetEnumUrlCacheEntry+0x1ebd
| csc.exe+0x10053
|
| The Citrix machine doesn't have connectivity to the outside.
|
| > Hi,
| >
| > I have a problem where creating a webservice proxy class takes from
15-20
| > seconds. This happens under Citrix environment. I was able to see what
| > csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
| >
| > ntdll!NtWaitForSingleObject+0xc
| > cryptnet!I_CryptNetIsConnected+0x205
| > cryptnet!I_CryptNetIsConnected+0x104
| > cryptnet!CryptGetObjectUrl+0x4b9
| > cryptnet!I_CryptNetIsConnected+0x187e
| > cryptnet!CryptGetObjectUrl+0x319
| > cryptnet!CryptGetObjectUrl+0x273
| > cryptnet!CryptGetTimeValidObject+0xa0
| > cryptnet!CryptGetTimeValidObject+0x4d
| > cryptnet!I_CryptNetIsConnected+0xef0
| > cryptnet!CertDllVerifyRevocation+0x38c
| > *** ERROR: Symbol file could not be found. Defaulted to export symbols
| > for C:\WINDOWS\system32\CRYPT32.dll -
| > cryptnet!CertDllVerifyRevocation+0x101
| > CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
| > CRYPT32!CertVerifyRevocation+0xb5
| > CRYPT32!I_CryptCreateLruCache+0x34b0
| > CRYPT32!I_CryptCreateLruCache+0x5175
| > CRYPT32!I_CryptCreateLruCache+0x7006
| > CRYPT32!I_CryptCreateLruCache+0x8a2a
| > CRYPT32!I_CryptCreateLruCache+0x8a7b
| >
| > 0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
| > System.Threading.Monitor.Enter(System.Object)
| > 0012f590 69919900
| > System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
| >
| > Do I need to disable cert revocation verification in registry (i don't
| > remember how to do it)? Is this a known problem? How can I work around
| > this?
| > This appears to be the only problem so far under Citrix. Thanks for any
| > help!
| >
|
|
|
Steven Cheng[MSFT]
2005-12-13 01:19:15 UTC
Permalink
Thanks for your followup Leon,

Yes, your response also remind me of a former issue which is caused by the
similiar things. When some of our assemblies are code signed and at the CLR
startup time, the security(cas) policy will try to verfiy the certificate
revorcation list over internet, if the machine's internet connection is not
setup correctly, it'll hangs until timeout.....
Also, there is the "Check for publisher's certificate revocation" setting
in the internet explore's advanced options , when turn off this can also
avoid such checking....

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| From: "Leon Finker" <***@nospam.nospam>
| References: <#YQz4HH$***@TK2MSFTNGP11.phx.gbl>
<#h7PyfH$***@tk2msftngp13.phx.gbl>
<IkzTdpL$***@TK2MSFTNGXA02.phx.gbl>
| Subject: Re: .NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20
seconds (compared to .NET 1.1) under Citrix
| Date: Sun, 11 Dec 2005 23:38:59 -0500
| Lines: 134
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| Message-ID: <#xHV6Xt$***@TK2MSFTNGP12.phx.gbl>
| Newsgroups: microsoft.public.dotnet.framework.clr
| NNTP-Posting-Host: ool-182d1f3e.dyn.optonline.net 24.45.31.62
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTNGP12.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl microsoft.public.dotnet.framework.clr:14800
| X-Tomcat-NG: microsoft.public.dotnet.framework.clr
|
| The problem is just as it was in .NET 1.1. It's CRL (cert. revocation
list)
| verification done by wintrust API, which .NET is using. It's timing out.
| However, in .NET 1.1 there probably weren't any authenticode signed
assembly
| dependencies when using SoapHttpClient and csc.exe for XML serialization
| because same code doesn't block under .NET 1.1.
|
| By disabling CRL verification for the user, the problem disappears under
| 2.0. First I see connection being made to crl.microsoft.com and then to
| crl.verisign.com. Both either fail or timeout, but this continues for
good
| ~10 seconds per csc.exe invocation as well as in main host executable.
|
|
| "Steven Cheng[MSFT]" <***@online.microsoft.com> wrote in message
| news:IkzTdpL$***@TK2MSFTNGXA02.phx.gbl...
| > Hi Leon,
| >
| > Welcome to MSDN newsgroup.
| > From your description you're encountering some problem when creating
| > webservice proxy in a .net 2.0 application, which will take long time
with
| > no responding .... ,yes?
| >
| > Are you generating the webservcie proxy through VS2005 or the wsdl.exe
| > tool? Also, I think this should be a service specific behavior. Can you
| > repro the problem through a simplified WSDL document? If so, it'd be
| > helpful if you can provide us this one so that we can have some test on
| > our
| > side...
| >
| > Thanks,
| >
| > Steven Cheng
| > Microsoft Online Support
| >
| > Get Secure! www.microsoft.com/security
| > (This posting is provided "AS IS", with no warranties, and confers no
| > rights.)
| >
| >
| >
| > --------------------
| > | From: "Leon Finker" <***@nospam.nospam>
| > | References: <#YQz4HH$***@TK2MSFTNGP11.phx.gbl>
| > | Subject: Re: .NET 2.0/csc.exe/SoapHttpClientProtocol hangs for 15-20
| > seconds (compared to .NET 1.1) under Citrix
| > | Date: Thu, 8 Dec 2005 23:20:51 -0500
| > | Lines: 68
| > | X-Priority: 3
| > | X-MSMail-Priority: Normal
| > | X-Newsreader: Microsoft Outlook Express 6.00.2900.2670
| > | X-RFC2646: Format=Flowed; Response
| > | X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670
| > | Message-ID: <#h7PyfH$***@tk2msftngp13.phx.gbl>
| > | Newsgroups: microsoft.public.dotnet.framework.clr
| > | NNTP-Posting-Host: ool-182d1f3e.dyn.optonline.net 24.45.31.62
| > | Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGP08.phx.gbl!tk2msftngp13.phx.gbl
| > | Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.clr:14774
| > | X-Tomcat-NG: microsoft.public.dotnet.framework.clr
| > |
| > | Another thread in csc.exe has the following callstack:
| > |
| > | ntdll.dll!NtWaitForSingleObject+0xc
| > | mswsock.dll+0x39d1
| > | ws2_32.dll!select+0x99
| > | WINHTTP.dll!WinHttpReceiveResponse+0xc613
| > | WINHTTP.dll!WinHttpReceiveResponse+0xc762
| > | WINHTTP.dll!WinHttpReceiveResponse+0x855e
| > | WINHTTP.dll!WinHttpTimeToSystemTime+0x6407
| > | WINHTTP.dll!WinHttpReceiveResponse+0x855e
| > | WINHTTP.dll!WinHttpTimeToSystemTime+0x8169
| > | WINHTTP.dll!WinHttpReceiveResponse+0x855e
| > | WINHTTP.dll!WinHttpTimeToSystemTime+0x6de5
| > | WINHTTP.dll!WinHttpReceiveResponse+0x855e
| > | WINHTTP.dll!WinHttpTimeToSystemTime+0x28b2
| > | WINHTTP.dll!WinHttpReceiveResponse+0x8668
| > | WINHTTP.dll!WinHttpSetOption+0x573
| > | WINHTTP.dll!WinHttpSendRequest+0x1db
| > | cryptnet.dll!I_CryptNetEnumUrlCacheEntry+0x1ebd
| > | csc.exe+0x10053
| > |
| > | The Citrix machine doesn't have connectivity to the outside.
| > |
| > | "Leon Finker" <***@nospam.nospam> wrote in message
| > | news:%23YQz4HH$***@TK2MSFTNGP11.phx.gbl...
| > | > Hi,
| > | >
| > | > I have a problem where creating a webservice proxy class takes from
| > 15-20
| > | > seconds. This happens under Citrix environment. I was able to see
what
| > | > csc.exe is doing. I'm not 100% sure if I caught it at the right
| > moment.
| > | > Let me know if more info is needed. Here is the callstack:
| > | >
| > | > ntdll!NtWaitForSingleObject+0xc
| > | > cryptnet!I_CryptNetIsConnected+0x205
| > | > cryptnet!I_CryptNetIsConnected+0x104
| > | > cryptnet!CryptGetObjectUrl+0x4b9
| > | > cryptnet!I_CryptNetIsConnected+0x187e
| > | > cryptnet!CryptGetObjectUrl+0x319
| > | > cryptnet!CryptGetObjectUrl+0x273
| > | > cryptnet!CryptGetTimeValidObject+0xa0
| > | > cryptnet!CryptGetTimeValidObject+0x4d
| > | > cryptnet!I_CryptNetIsConnected+0xef0
| > | > cryptnet!CertDllVerifyRevocation+0x38c
| > | > *** ERROR: Symbol file could not be found. Defaulted to export
| > symbols
| > | > for C:\WINDOWS\system32\CRYPT32.dll -
| > | > cryptnet!CertDllVerifyRevocation+0x101
| > | > CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
| > | > CRYPT32!CertVerifyRevocation+0xb5
| > | > CRYPT32!I_CryptCreateLruCache+0x34b0
| > | > CRYPT32!I_CryptCreateLruCache+0x5175
| > | > CRYPT32!I_CryptCreateLruCache+0x7006
| > | > CRYPT32!I_CryptCreateLruCache+0x8a2a
| > | > CRYPT32!I_CryptCreateLruCache+0x8a7b
| > | >
| > | > The process that calls csc.exe is in:
| > | > 0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
| > | > System.Threading.Monitor.Enter(System.Object)
| > | > 0012f590 69919900
| > | > System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
| > | >
| > | > Do I need to disable cert revocation verification in registry (i
don't
| > | > remember how to do it)? Is this a known problem? How can I work
around
| > | > this?
| > | > This appears to be the only problem so far under Citrix. Thanks for
| > any
| > | > help!
| > | >
| > |
| > |
| > |
| >
|
|
|
Rick Strahl [MVP]
2005-12-14 23:17:10 UTC
Permalink
Leon,

I've seen this same sort of thing and it's related to the change of the
default proxy that .NET 2.0 uses. .NET 2.0 will by default use the System
Proxy settings where 1.1 by default connected directly without any proxy...

I've found this to be a problem if you're running in ASP.NET under NETWORK
SERVICE for example, which doesn't have access to the System Proxy settings
in the registry - so it hunts around looking for the proxy settings before
giving up and using direct connects.

You can override the default roxy in your .Config file. This is what I use
in my ASP.NET apps now:

<system.net>
<defaultProxy>

<proxy bypassonlocal="true" usesystemdefault="false" />

</defaultProxy>

</system.net>


The above uses direct connect by default.


Not sure if this is your issue, but it sounds exactly like the symptoms I
saw with using the XMLReader to load some XML from over the Web from an
ASP.NET app.


+++ Rick ---
--
Rick Strahl
West Wind Technologies
www.west-wind.com
www.west-wind.com/weblog
Post by Leon Finker
Hi,
I have a problem where creating a webservice proxy class takes from 15-20
seconds. This happens under Citrix environment. I was able to see what
csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
ntdll!NtWaitForSingleObject+0xc
cryptnet!I_CryptNetIsConnected+0x205
cryptnet!I_CryptNetIsConnected+0x104
cryptnet!CryptGetObjectUrl+0x4b9
cryptnet!I_CryptNetIsConnected+0x187e
cryptnet!CryptGetObjectUrl+0x319
cryptnet!CryptGetObjectUrl+0x273
cryptnet!CryptGetTimeValidObject+0xa0
cryptnet!CryptGetTimeValidObject+0x4d
cryptnet!I_CryptNetIsConnected+0xef0
cryptnet!CertDllVerifyRevocation+0x38c
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for C:\WINDOWS\system32\CRYPT32.dll -
cryptnet!CertDllVerifyRevocation+0x101
CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
CRYPT32!CertVerifyRevocation+0xb5
CRYPT32!I_CryptCreateLruCache+0x34b0
CRYPT32!I_CryptCreateLruCache+0x5175
CRYPT32!I_CryptCreateLruCache+0x7006
CRYPT32!I_CryptCreateLruCache+0x8a2a
CRYPT32!I_CryptCreateLruCache+0x8a7b
0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
System.Threading.Monitor.Enter(System.Object)
0012f590 69919900
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
Do I need to disable cert revocation verification in registry (i don't
remember how to do it)? Is this a known problem? How can I work around this?
This appears to be the only problem so far under Citrix. Thanks for any
help!
Leon Finker
2005-12-16 04:11:12 UTC
Permalink
Hi Rick,

It didn't help. It still tries to connect to crl.microsoft.com and
crl.verisign.com. But it's unable to connect behind firewall and waits for
reponse 10s or so per try. Firewall most likely just drops the packet. The
only way that helps is to disable CRL verification.
Post by Rick Strahl [MVP]
Leon,
I've seen this same sort of thing and it's related to the change of the
default proxy that .NET 2.0 uses. .NET 2.0 will by default use the System
Proxy settings where 1.1 by default connected directly without any proxy...
I've found this to be a problem if you're running in ASP.NET under NETWORK
SERVICE for example, which doesn't have access to the System Proxy
settings in the registry - so it hunts around looking for the proxy
settings before giving up and using direct connects.
You can override the default roxy in your .Config file. This is what I use
<system.net>
<defaultProxy>
<proxy bypassonlocal="true" usesystemdefault="false" />
</defaultProxy>
</system.net>
The above uses direct connect by default.
Not sure if this is your issue, but it sounds exactly like the symptoms I
saw with using the XMLReader to load some XML from over the Web from an
ASP.NET app.
+++ Rick ---
--
Rick Strahl
West Wind Technologies
www.west-wind.com
www.west-wind.com/weblog
Post by Leon Finker
Hi,
I have a problem where creating a webservice proxy class takes from 15-20
seconds. This happens under Citrix environment. I was able to see what
csc.exe is doing. I'm not 100% sure if I caught it at the right moment.
ntdll!NtWaitForSingleObject+0xc
cryptnet!I_CryptNetIsConnected+0x205
cryptnet!I_CryptNetIsConnected+0x104
cryptnet!CryptGetObjectUrl+0x4b9
cryptnet!I_CryptNetIsConnected+0x187e
cryptnet!CryptGetObjectUrl+0x319
cryptnet!CryptGetObjectUrl+0x273
cryptnet!CryptGetTimeValidObject+0xa0
cryptnet!CryptGetTimeValidObject+0x4d
cryptnet!I_CryptNetIsConnected+0xef0
cryptnet!CertDllVerifyRevocation+0x38c
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for C:\WINDOWS\system32\CRYPT32.dll -
cryptnet!CertDllVerifyRevocation+0x101
CRYPT32!CertVerifyCertificateChainPolicy+0x14b0
CRYPT32!CertVerifyRevocation+0xb5
CRYPT32!I_CryptCreateLruCache+0x34b0
CRYPT32!I_CryptCreateLruCache+0x5175
CRYPT32!I_CryptCreateLruCache+0x7006
CRYPT32!I_CryptCreateLruCache+0x8a2a
CRYPT32!I_CryptCreateLruCache+0x8a7b
0012f538 7ffe0304 [HelperMethodFrame_1OBJ: 0012f538]
System.Threading.Monitor.Enter(System.Object)
0012f590 69919900
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
Do I need to disable cert revocation verification in registry (i don't
remember how to do it)? Is this a known problem? How can I work around this?
This appears to be the only problem so far under Citrix. Thanks for any
help!
Loading...