我已经以第二个服务合同的形式扩展了具有新功能的WCF服务。 service.cs现在实现了两个合同。我添加了另一个端点来公开新的合同操作。这是我与服务相关的web.config
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding" />
</basicHttpBinding>
<webHttpBinding>
<binding name="XmlHttpBinding"/>
</webHttpBinding>
</bindings>
<services>
<service name="MyNamespace.MyService"
behaviorConfiguration="MyServiceBehavior">
<!-- Service Endpoints -->
<endpoint address="xmlHttp1"
behaviorConfiguration="XmlHttpBehavior"
binding="webHttpBinding"
bindingConfiguration="XmlHttpBinding"
contract="MyNamespace.IContract1" />
<endpoint address="xmlHttp2"
binding="webHttpBinding"
behaviorConfiguration="XmlHttpBehavior"
bindingConfiguration="XmlHttpBinding"
contract="MyNamespace.IContract2" />
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding"
contract="MyNamespace.IContract1" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="XmlHttpBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
通过Javascript,调用“http://server/wcfServiceApp/MyService.svc/xmlHttp1/Method1”仍然可以正常工作。
调用“http://server/wcfServiceApp/MyService.svc/xmlHttp2/Method2”会返回12031错误。
必须有一些我不做的简单的事情,感谢任何帮助。
答案 0 :(得分:1)
我解决了这个问题。我返回的业务对象(让我们称之为BusinessClass)指定了[DataContract()]属性 - 这很好。
但是这个类包含一个自定义集合(我们称之为CustomCollectionClass),它也指定了[DataContract()]属性。
最初我只是要返回CustomCollectionClass对象,但后来决定使该集合成为BusinessClass的成员 - 我决定稍后返回多个集合。我忘了从CustomCollectionClass中删除[DataContract()]属性。一旦我删除了该属性 - 每件事都很花哨。
我是WCF的新手,所以你们中的一位WCF专家可以跟进这篇文章,并解释一下这个属性指定两次的情况下发生了什么? 我很想了解这一点以供将来参考。谢谢。
答案 1 :(得分:0)
我之前看过12031与Viewstate错误相关(太多VS)。你怎么称呼这项服务?您是否使用像Fiddler这样的工具执行了简单的HTTP跟踪来检查您要发送的内容?