2012-01-30 80 views
0

上我有一个WSDL和XSD然后我生成从WSDL一个SVC客户端代理WSDL,WSDL托管的Windows Server 2003(本地外域)上,地方上互联网。 XSD也位于同一地点。我可以在网络浏览器中看到它们,没有问题。SVC客户端代理和托管远程服务器

然后我做了一个简单的控制台应用程序客户端,当我运行客户端时,我看到fiddler中有正确的soap响应,但在控制台应用程序响应为null,即SVC客户端无法反序列化它。

我相信,XSD + WSDL是正确的,响应太(我看到提琴手)。

当我把WSDL和XSD的本地域服务器(内部网)上,这一切都很好,我看反应在应用程序中正确反序列化。

如果我比较小提琴手两个的情况下,我没有看到原始响应任何区别。

数点:我不是在IIS托管WCF服务。我有一个远程运行的不同服务。让我知道如果我澄清更多的事情。

谢谢。

编辑/更新:清理后。问题似乎不是IIS6或IIS7,它是远程服务器创建模式位置的麻烦。在SVC代理客户端MessagContract命名空间中,如果指向外部服务器,则在内部网服务器上会出现问题,它运行得很好。

例子:

[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] 
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] 
[System.ServiceModel.MessageContractAttribute(IsWrapped = false)] 
public partial class responseTypeOfMethod1 
{ 

[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://testserver.xxxxx/yyyy.wsdl", Order = 0)] 
public RAT_type RAT; 
................ 
.... 
.. 

} 

如果http://testserver.xxxxx点到本地服务器,所有的罚款,如果指向一个互联网服务器,响应为空

+0

有人见过这样的毛病吗?我出于ideas.namspace网址,本地服务器的作品,外面的服务器没有。 – SSA 2012-01-30 22:17:15

+1

您可以尝试生成代理并在客户端中使用该代理,并查看反序列化是否可以正常工作。确保删除已添加的服务参考。 – Rajesh 2012-01-31 10:23:19

回答

1

有两件事情可以在此处发生的事情:

  1. 响应未从远程服务器返回
  2. 客户端无法反序列化响应e

使用wireshark或其他网络嗅探器来查看返回的响应。

如果问题是由于无法反序列化,它可能是在命名空间的差异。

+0

谢谢谢拉兹的回复,我检查了在提琴手中,回应是存在的,也是在SVC日志中,它是正确的回应。这是一个反序列化问题,但只有当wsdl位于本地域之外时。在删除服务器上时,架构位置有问题。当我将命名空间指向本地服务器时,一切正常。我正在清理OP。 – SSA 2012-01-30 19:14:22

1

问题已解决。当然,这是命名空间问题,需要很长时间才能找到服务器代码中一个令人讨厌的地方,这是我们内部使用的工具。感谢所有为你的时间回复的人。

相关问题