WCF reference.cs突然不包括类

时间:2011-12-17 04:10:26

标签: c# visual-studio wcf

我已经开发了一个WCF服务,它已经运行了好几周了。我直接从开发服务器将此服务发布到IIS。我有一个开发测试应用程序,它在自己的项目中包含此WCF服务作为服务引用。

我的WCF类库还引用了Visual Studio解决方案中的另一个项目,并且许多类都在引用的项目中,由服务和调用应用程序使用。

今天,在发布对服务的一些更改之后(我没有对引用的项目或其类进行任何更改),引用项目中大约20个类中的三个不再位于我的测试应用程序的服务引用中。我不能再在代码中使用它们了,它们不再在Reference.cs中。我仔细检查过,所讨论的类仍然使用[DataContract]进行修饰,并且所有属性仍然在服务解决方案中使用[DataMember]进行修饰。

一切都在Visual Studio中构建好了..我已经重建并重新发布了所有内容,缺少的类设置为编译,我已经尝试过IIS重置,完全删除了IIS站点并做了干净的重新发布,无济于事。我已经尝试删除测试应用程序上的服务引用,并且每次都获得一个干净的代理。没有什么工作。

然后我尝试在引用的项目中创建一个虚拟类并构建它。再次重新发布服务,甚至这个虚拟类也没有出现在Reference.cs中。我完全不知道为什么这些类在发布之后没有包含在引用项目的.dll中,因为显然所有内容都在Visual Studio中构建好。

3 个答案:

答案 0 :(得分:5)

我遇到这样的问题。 以下步骤可以帮助您 1.右键单击服务(项目的服务参考部分) 2.在“更新服务参考”中单击“高级” 3.做附图。enter image description here

答案 1 :(得分:4)

想回来发布造成我问题的原因:

我做了更改,我的服务方法都没有使用3个“缺失”类作为返回类型或参数。我只需要取消注释使用这些类的方法,使它们再次可用。现在有道理,但我确信其他错误。

答案 2 :(得分:0)

我遇到了类似的问题并通过以下方式解决了这个问题。

使用mexHttpsBinding添加终点的地址。 例如,让我们将地址视为 mex

配置服务参考时,会在服务网址末尾添加 / mex

  

https://service.domain.com/serivce1.svc/mex

这将启用元数据交换。因此,将修改/添加Reference.cs(如果您是第一次添加服务引用)。

请确保您的服务有mexHttpBinding / mexHttpsBinding的终点

编辑:在分析中,我发现当服务通过两个以上的终点(包括mex终点)公开时会发生此问题