对WCF服务的Ajax调用在新端点上返回12031 ERROR_INTERNET_CONNECTION_RESET

时间:2010-04-07 21:11:55

标签: ajax wcf configuration

我已经以第二个服务合同的形式扩展了具有新功能的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错误。

必须有一些我不做的简单的事情,感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。我返回的业务对象(让我们称之为BusinessClass)指定了[DataContract()]属性 - 这很好。

但是这个类包含一个自定义集合(我们称之为CustomCollectionClass),它也指定了[DataContract()]属性。

最初我只是要返回CustomCollectionClass对象,但后来决定使该集合成为BusinessClass的成员 - 我决定稍后返回多个集合。我忘了从CustomCollectionClass中删除[DataContract()]属性。一旦我删除了该属性 - 每件事都很花哨。

我是WCF的新手,所以你们中的一位WCF专家可以跟进这篇文章,并解释一下这个属性指定两次的情况下发生了什么? 我很想了解这一点以供将来参考。谢谢。

答案 1 :(得分:0)

我之前看过12031与Viewstate错误相关(太多VS)。你怎么称呼这项服务?您是否使用像Fiddler这样的工具执行了简单的HTTP跟踪来检查您要发送的内容?