.Net 1.1 Windows应用程序无法调用.Net 3.5 WebService

时间:2008-11-07 14:25:29

标签: .net web-services .net-3.5 .net-1.1

我有一个奇怪的问题。我有一个在2.0框架下编译的Web服务,该框架由使用1.1框架编译的Windows应用程序使用。这很好用。现在,在将Web服务升级到3.5框架后,Windows应用程序将无法再调用它。

在3.5中创建一个小的Windows应用程序作为测试能够毫无问题地调用Web服务,所以我知道它仍然有用。

代码中没有任何变化,它只是编译为3.5项目而不是2.0项目。

对于那些关心我得到的错误的人来说,就是这样:

  

未处理的类型异常   'System.Net.WebException'发生在   system.web.services.dll

     

其他信息:基础连接已关闭:An   a上发生意外错误   接收。

我可以对Web服务做些什么来使其向后兼容(如果这甚至是问题)?

[编辑]回复以下答案(到目前为止):重新发现不起作用,也没有删除和重新添加Web服务。我不相信这是一个SOAP问题,因为WSDL是相同的(都显示SOAP 1.2)。从服务器浏览到web服务工作正常。

6 个答案:

答案 0 :(得分:1)

尝试'重新发现'.NET 1.1中的Web服务(可能只是一个测试应用程序)并查看问题是否仍然存在。

答案 1 :(得分:1)

它可能是SOAP 1.0与SOAP 1.1。默认情况下,3.5服务可能使用1.1或1.2,我认为可以在web.config绑定中配置。

答案 2 :(得分:1)

KeepAlives可能存在问题(例如,通过代理)。作为测试,将下面的代码添加到客户端中生成的Reference.cs(丑陋 - 是的)。我在使用Fiddler(它是一个代理)来测试客户端和服务器之间的通信时遇到了这个问题。

    // Put this override in the generated Reference.cs of the client proxy
    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {
        HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);

        webRequest.KeepAlive = false;
        webRequest.ProtocolVersion = HttpVersion.Version10;
        return webRequest;
    }

答案 3 :(得分:0)

您可以直接在IIS安装上使用Web服务吗?如果没有,请检查IIS中的应用程序配置。您必须切换ASP.NET的版本。

答案 4 :(得分:0)

作为额外的“健全性检查”,soapUI是否可以成功调用3.5 Web服务?

答案 5 :(得分:0)

我遇到了这个并通过强制服务上的域名来解决它。

[webservice] .Credentials = System.Net.CredentialCache.DefaultCredentials;

OR

[webservice] .Credentials = new System.Net.NetworkCredential([user],[pwd],[domain]);