2016-07-27 25 views
0

现在我们一直在与一个奇怪的问题斗争了几天。已经搜索网络的答案,但似乎没有解决这个错误。Silverlight Web服务更新无法导入wsdl

我们的场景是:我们的组织有一个Silverlight 5应用程序,它是在VS 2010中开发的,并且一切正常。它实际上在我们的生产服务器上运行。
最近我们将我们的开发机器迁移到了VS 2015以及机器本身(新的机器部分)。操作系统是Windows 7,和以前一样。

起初,我们与那个讨厌的MatchTimeoutInMilliseconds错误受到欢迎,由于MS框架。最终MS发布了涵盖此问题的4.6.2预览版。

好的。所以回到实现所要求的更改,我们在我们的web服务中创建了一个新方法,并且它很好。我们确实有[OperationContract][DataContract]标签。有一个问题发布和解答这些标签丢失的理由。
但是,当我们转到SL应用程序并更新WS引用时,我们得到此“自定义工具错误:无法为服务引用生成代码...”
自定义工具警告消息包括
“无法导入wsdl:绑定...“
”无法导入wsdl:port ...“
”无法导入wsdl:portType ...“
”找不到与Silverlight 5兼容的端点,生成的客户端类将不可用,除非端点信息通过构造函数提供。“

我们很纳闷,因为那时我们认为我们可能会做错事,所以我们回滚的变化,并更新不改变服务的参考,我们得到了同样的错误。 Referece.cs文件是在没有代码的情况下生成的,并且所有对web服务的引用都不再被编译器识别。

我们也看了一些帖子说提供最便捷的解决方案取消选中“在引用的程序重用类型”。这样做的确清除了这些错误,只是为了生成其他错误,因为我们的应用程序是建立在这个前提之上的。
我们也尝试删除服务引用并将其添加回去,但无济于事。

最终,我们将SL应用程序还原到了编译的位置,这是在更新Web服务引用之前,用新方法重新发布了WS,并手动将新方法添加到Reference.cs文件中,对其进行了测试并有用。

但是,这不应该是 - 解决方案。这是一个麻烦,容易出错。 我们希望在解决此问题方面提供任何帮助,或者了解为什么会发生这种情况。

感谢

+0

您的服务是否通过验证保护? – BugFinder

+0

不是,它很简单,并在同一台机器上运行 –

+0

那么我有点难倒那么,因为我做了同样的事情,我有一个vs2010,虽然我经历了2013年,但移动到2015年,没有遇到这个。然而我没有搬到4.6.2即时4.5,因为我可以:P – BugFinder

回答

0

整个问题是,由于某种原因,我仍然没有找到,VS无法生成代码为Reference.cs

作为解决方法,我们设法通过使用SlSvcUtil.exe工具(位于我的机器上)“c:\ Program Files(x86)\ Microsoft SDKs \ Silverlight”中生成Reference.cs文件\ V5.0 \工具”。

为了获得相同的代码迁移之前产生的一个,我用下面的命令和选项:

SlSvcUtil.exe my_ws_address /命名空间:“*,my_class_namespace”/ct:System.Collections.ObjectModel.ObservableCollection`1/r:“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v5.0 \ System.Windows.dll”/ edb/ser:Auto

我没有使用/ out开关,而是在我所需的输出目录上运行命令。但是在运行该命令之前,您可能需要查看该开关。