D
daryl
I have a situation where a webservice has worked fine in a development
environment, but when placed into production has stopped working
(although at one time it was).
Using WSE 2.0/DIME, we wrote a simple File Transfer and retrieval
service, which has to pass through a firewall (the only real difference
between dev and production -- at the time).
Originally, the error was this:
The underlying connection was closed: Could not establish secure
channel for SSL/TLS. Inner Exception: The function completed
successfully, but must be called again to complete the context
However, I located a resource on the web
(http://weblogs.asp.net/jan/archive/2004/05/08/128394.aspx) which
recommended this code. This change was not required on the development
environment or test environment, but the functionality worked in
development so I thought we were OK.
public class MySubClassedWebService : MyWebServiceWse {
private static PropertyInfo requestPropertyInfo = null;
public MySubClassedWebService(){}
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
WebRequest request = base.GetWebRequest(uri);
if (requestPropertyInfo==null)
// Retrieve property info and store it in a static member
for optimizing future use
requestPropertyInfo =
request.GetType().GetProperty("Request");
// Retrieve underlying web request
HttpWebRequest webRequest =
(HttpWebRequest)requestPropertyInfo.GetValue(request,null);
// Setting KeepAlive
webRequest.KeepAlive = false;
return request;
}
}
Unfortunately, on the production server (Windows Server 2003), it
doesn't work unless you replace "return request; " with "return
webRequest;" Making the change then works for calls made to the server.
Progress! Sort of...
This solved 1/2 the problem in that it now succeeds with any non-DIME
calls.
However, when a call to the web service is made to retrieve a file via
DIME, the following error occurs. This problem occurs both on
production and development.
Client found response content type of 'application/dime', but expected
'text/xml'
I have verified the following:
-- same version of WSE (2.0 SP2)
-- WebService on production connection settings are correct
-- Same problem occurred on the machine when we were running Windows
2000
Anyone have any suggestions?
environment, but when placed into production has stopped working
(although at one time it was).
Using WSE 2.0/DIME, we wrote a simple File Transfer and retrieval
service, which has to pass through a firewall (the only real difference
between dev and production -- at the time).
Originally, the error was this:
The underlying connection was closed: Could not establish secure
channel for SSL/TLS. Inner Exception: The function completed
successfully, but must be called again to complete the context
However, I located a resource on the web
(http://weblogs.asp.net/jan/archive/2004/05/08/128394.aspx) which
recommended this code. This change was not required on the development
environment or test environment, but the functionality worked in
development so I thought we were OK.
public class MySubClassedWebService : MyWebServiceWse {
private static PropertyInfo requestPropertyInfo = null;
public MySubClassedWebService(){}
protected override System.Net.WebRequest GetWebRequest(Uri uri)
{
WebRequest request = base.GetWebRequest(uri);
if (requestPropertyInfo==null)
// Retrieve property info and store it in a static member
for optimizing future use
requestPropertyInfo =
request.GetType().GetProperty("Request");
// Retrieve underlying web request
HttpWebRequest webRequest =
(HttpWebRequest)requestPropertyInfo.GetValue(request,null);
// Setting KeepAlive
webRequest.KeepAlive = false;
return request;
}
}
Unfortunately, on the production server (Windows Server 2003), it
doesn't work unless you replace "return request; " with "return
webRequest;" Making the change then works for calls made to the server.
Progress! Sort of...
This solved 1/2 the problem in that it now succeeds with any non-DIME
calls.
However, when a call to the web service is made to retrieve a file via
DIME, the following error occurs. This problem occurs both on
production and development.
Client found response content type of 'application/dime', but expected
'text/xml'
I have verified the following:
-- same version of WSE (2.0 SP2)
-- WebService on production connection settings are correct
-- Same problem occurred on the machine when we were running Windows
2000
Anyone have any suggestions?