Issue:
The underlying connection was closed: An unexpected error occurred on a receive.
Web Service Timeout problems occurring on Client and Server sides.
Server => Web Service Host
Client => Web Service Caller
*
The underlying connection was closed: An unexpected error occurred on a receive.
This is a client side problem.
And it can be solved by avoiding HTTP KeepAlives - with Dot Net 1.1
For other issues we need to increase the timeout values at various levels.
*
For Server side, adjust the proper connection timeout value in the IIS web server properties.
*
if the request takes too long on the server, the web server could time it out.
*
Also adjust this value: in the config file (web/app .config) (Read more on msdn)
The default is value 110, a little less than 2 minutes. See documentation for detail.
For Client Side (Timeout: 'give up on the server if you don't get a reply back with a certain time'.);
To specify the amount of time to wait for the request to complete, use the Timeout property.
A
Domain Name System (DNS) query may take up to 15 seconds to return or
time out. If your request contains a host name that requires resolution
and you set Timeout to a value less than 15 seconds, it may take 15
seconds or more before a WebException is thrown to indicate a timeout on your request.
*
There are two timeout values that need to be adjusted based on the situation.
Timeout, ReadWriteTimeout
*
HttpWebRequest.Timeout = The number of milliseconds to wait before the request times out. The default is 100,000 milliseconds (100 seconds).
*
HttpWebRequest.ReadWriteTimeout
= ReadWriteTimeout property controls the time-out for the Read method,
which is used to read the stream returned by the GetResponseStream
method, and for the Write method, which is used to write to the stream
returned by the GetRequestStream method.
Or simply 'The number of
milliseconds before the writing or reading times out. The default value
is 300,000 milliseconds (5 minutes).'
Adjust these values before calling the Web Service (Method) or before making the WebRequest.
*
WebClientProtocol.Timeout Property
The time out in milliseconds, for synchronous calls to the XML Web service. The default is 100000 milliseconds.
(WebClientProtocol: Specifies the base class for all XML Web service client proxies created using ASP.NET.)
Setting
the Timeout property to Timeout.Infinite indicates that the request
does not time out. Even though an XML Web service client can set the
Timeout property to not time out, the Web server can still cause the
request to time out on the server side.
Note that:
WebClientProtocol
->HttpWebClientProtocol
|->SoapHttpClientProtocol
|->WebServicesClientProtocol
|->WebServiceClass
These
properties of the WebClientRequest class and its derived classes all
map to properties on the corresponding System.Net.WebRequest and
derived classes.
*
I guess all this text above combined together would be helpful as it is described in a plain programmers way.
Further:
http://www.thescripts.com/forum/thread425852.html
http://www.thescripts.com/forum/thread427678.html
HttpWebRequest.ReadWriteTimeout Property
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.readwritetimeout.aspx
HttpWebRequest.Timeout Property
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.timeout.aspx
Please do not hesitate to ask/discuss it any further through your comments.
---
hB
Cloud computing is a popular phrase which is used for applications that are developed to be rich Internet applications (AJAXed - like Desktop Apps) that run on the Internet (or "cloud"). In the cloud computing paradigm, software that is traditionally installed on personal computers is shifted or extended to be accessible via the Internet. These "cloud applications" or "cloud apps" utilize massive data centers and powerful servers that host web applications and web services. They can be accessed by anyone with a suitable Internet connection and a standard web browser.
The architecture behind cloud computing is a massive network of "cloud servers" interconnected as if in a grid running in parallel, sometimes using the technique of virtualization to maximize computing power per server.
-------------------------
Google, the most visible example, took cloud computing a step further and directly challenged Microsoft by offering a suite of free word-processing and spreadsheet software over a browser.
Hundreds of companies in Silicon Valley are offering every imaginable service, from writing tools to elaborate dating and social networking systems, all of which require only a Web browser and each potentially undermining Microsoft’s desktop monopoly.
Microsoft is a late entrant to a set of businesses that are largely defined as Web 2.0, but the company is counting on its ability to exploit its vast installed base of more than one billion Windows-based personal computers.
The Windows Live service (MS Cloud Computing Initiative) — which is found at www.live.com — includes new versions of the company’s Hotmail and Messenger communications services as well as Internet storage components.
More:
http://www.gridtoday.com/grid/1833835.html
http://bits.blogs.nytimes.com/2007/08/24/why-cant-we-compute-in-the-cloud/
http://seattletimes.nwsource.com/html/businesstechnology/2003854913_msftcloud27.html
Like any good technology, ASP.NET continues to evolve as new versions are released.
But, like anything else, this brings with it a number of considerations.
Microsoft has done a great job of allowing multiple versions of the framework to run side by side.
Version v1.0, v1.1 and v2.0 can all run together at the same time on the same server.
There are a couple catches to consider with running multiple versions of the framework side by side.
Worker Process is the one that hosts a particular framework version. There is one per version of the framework. (v1.0, v1.1 and v2.0).
If a process for a particular version of the framework doesn't exist, as soon as it's needed, a new process will be spun up.
This allows multiple versions of the framework to live beside each other in IIS.
aspnet_wp.exe is the worker process with IIS 5, w3wp.exe is the worker process with IIS 6.
IIS 6 was an impressive upgrade that brought with it some new concepts. One key new concept is Application Pools.
A system administrator is able to create groups of sites and place each site in its own group.
Whenever a site needs to run, a w3wp.exe process will start for its application pool if it hasn't already started.
This brings with it a number of welcome security, performance and management advantages.
You are now able to specify your own Identity User which can be unique per Application Pool.
With IIS 6 there is one problem:
You cannot run more than one version of the framework in the same application pool in IIS 6.
While multiple versions of the framework can co-exist on the same server, they can't co-exist in the same process.
If you attempt to run multiple versions of the framework at the same time in the same process, the 2nd version that tries to run will fail with the following error:
Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
You will also receive Event ID 1062 in Event Viewer that says:
"It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process."
What to do
Fortunately, the solution is very easy.
Simply create a new application pool and move the site that you will be upgrading to that pool.
So basically you can group all the sites to a different application pool which is all specific to framework version and windows user credential.
Ref: Understanding Application Pooling in IIS 6.0
"tangible FREE modeling tools" which support UML-style modeling diretly in Visual Studio.NET. tangible free modeling tools enable the .NET community to communicate better in .NET projects without costs.
tangible modelling tools FREE EDITION has the same modelling diagrams included as our world-class Model-Driven Code Generator tangible architect.
Start using the IDE-integrated modelers for Class Diagrams, Use Case Diagrams, Component Diagrams, State Diagrams and Activity Diagrams right now. => http://www.tangiblearchitect.net/modellingtools.html
With the release of Visual Studio 2008, Microsoft will be releasing the source code for the .NET Framework Libraries.
The ability to be able to debug through your application and then right in to the framework itself will be a huge benefit for developers.
Initially the source code released will be for the following libraries;
* .NET Base Class Libraries (including System, System.Net, System.Security, etc.)
* ASP.NET (System.Web)
* Windows Forms (System.Windows.Forms)
* ADO.NET (System.Data)
* XML (System.XML)
* Windows Presentation Foundation aka WPF (System.Windows)
View the detailed info @ Releasing the Source Code for the .NET Framework Libraries - ScottGu's Blog
DLL Help exists to help developers, system administrators, and other IT professionals who face file version conflicts with Microsoft software. Use DLL Help to identify the software that installed a specific version of a DLL file.
http://support.microsoft.com/dllhelp/
http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp?fr=0&sd=msdn
http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp
With the upcoming Visual Studio Shell, Microsoft is looking to open its base IDE to a wider ecosystem.
Visual Studio Shell provides a core IDE for users to develop their own custom programming language or development tools.
Full: http://searchvb.techtarget.com/originalContent/0,289142,sid8_gci1273412,00.html
Here we consider a small aspect found while parsing XML string.
We are using Dot Net (1.1) but we process xml in general (non-dotnet specific version) using the XPath expressions.
Situation is we have XML string format as:
<ns:XMLMessage xmlns:ns="http://domain.com/codename/MessagesXMLSchema.xsd">
<ns:EventType>task</ns:EventType>
<ns:EventName>TASK_COMPLETE</ns:EventName>
<ns:JobId>02000016000004630144000100000070</ns:JobId>
<ns:TaskId>02000016000004630154000200000070</ns:TaskId>
<ns:EventDateTime>2007-09-06T15:26:25+04:00</ns:EventDateTime>
</ns:XMLMessage>
= strXMLMsg
Scene 1:
Dim xmlDoc As New Xml.XmlDocument
xmlDoc.LoadXml(strXMLMsg)
strXPath = "/XMLMessage /EventName"
xmlNode = xmlDoc.SelectSingleNode(strXPath)
strData = xmlNode.InnerText
In this seen we will not be able to get our parsed data. And the issue is the inclusion of the namespace and its prefix.
So to get the parsed data correctly we have to use the way shown in scene 2.
Scene 2:
Dim xmlDoc As New Xml.XmlDocument
xmlDoc.LoadXml(strXMLMsg)
xsn = New Xml.XmlNamespaceManager(xmlDoc.NameTable)
XMLNamespace = "http://domain.com/codename/MessagesXMLSchema.xsd"
XMLNamespacePrefix = "ns"
xsn.AddNamespace(XMLNamespacePrefix , XMLNamespace)
strXPath = "/ns:XMLMessage /ns:EventName"
xmlNode = xmlDoc.SelectSingleNode(strXPath,xsn)
strData = xmlNode.InnerText
In this way we will get our data parsed correctly!
I hope the situation mentioned above is somewhat helpful.
Any questions/issues/suggestions/imporvements - please mention them in your comments.
Have a nice time.
---
hB
My first Blog Post on Yukonizer.
Hello World!