The underlying connection was closed: The connection was closed unexpectedly.,StackTrace: at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at LorealWebService.cn.com.acxiom.wsuat.LOPECWebServiceSOAP.signIn(Customer customer)
引用WSDL的Webservice,本机运行正常,部署到服务器后,出现The underlying connection was closed错误。在本机的IIS部署访问也是正常的,本机环境测试过Win2003,Win8. 在服务器Server2008部署后就报错如上。
求助. Service 是https方式的,不知有没有关系。
感谢各位帮助。
解决方法:
你把web引用的http://localhost/...
改变成http://Your IP/...(后面是你的服务名),就行了。
搞分布式应用,别用你那种做法了,用Remoting吧,非常灵活。
杯具的是IP也是一样的错误……
既然提到了remoting,那为什么不直接用WCF?
@arg: 我的理由是(仅代表我平常开发观点)
1.Remoting没有应用程序限制,可以是控制台,winform,iis,windows服务承载远程对象,开发很自由。
2.在相同的条件下比较,可能WCF会慢点,因为WCF的序列化,使用的是SOAP消息格式,虽然有时候会二进制,但是消息封装会多出一些东西,比如使用安全的时候,可能会产生更多的附加信息。
3。有些tcp等协议,会比其他处理的好。
.............
wcf 将通讯协议从服务中分离出来 并提供了9种不同的协议,这也是wcf的优势。
不确定你是怎么写地址的,是http://address/ 还是https://address/ ,既然用了ssl就必须是https://address/。
下面一篇参考文章:
http://support.microsoft.com/kb/307267
谢谢。我们是https://address的方式。奇怪的是在Server2003的IIS上就是可以的,IIS7就不行了。而且在本机环境IIS8,IIS7也是可以的。不知道是不是跟权限有什么关系。
非常感谢你的帮助。参考文章让我们理解了不少关于https的运作方式,不过Service提供公司并没有提供比如证书一类的东西,只有这么一个Service地址和方法文档。我们问过他们,是不需要证书的。
现在一直搞不懂的是为什么Server2003就可以运行呢。 感觉好像跟IIS哪里的设置有关系。
用了个中转解决的,唉。还是没最终找到问题根源所在