服务参考:HTTP状态404-元数据包含无法解析的参考

问题描述

我试图在我的C#控制台应用程序中连接到加利福尼亚税率公共API,并在下面收到服务参考错误。我已经成功使用了大约9个月。我试图在新的应用程序中重新创建引用,但收到相同的错误。我不确定要采取什么故障排除步骤。请让我知道是否可以提供更多有用的信息。

该服务位于此处,可供测试:http://services.gis.boe.ca.gov/api/taxrates/Rates.svc

下载时出错 'http://services.gis.boe.ca.gov/api/taxrates/Rates.svc/$Metadata'。的 请求失败,HTTP状态为404:找不到。元数据包含一个 无法解析的参考: “ http://services.gis.boe.ca.gov/api/taxrates/Rates.svc”。服务器 没有提供有意义的答复;这可能是由合同引起的 不匹配,会话过早关闭或内部服务器错误。如果 该服务是在当前解决方案中定义的,请尝试构建 解决方案,然后再次添加服务引用。

解决方法

从端点获取的wsdl无效。

<xs:element name="TestResponse">
  <xs:element minOccurs="0" maxOccurs="1" name="TestResult" type="xs:string"/>          
</xs:element>

应该是

<xs:element name="TestResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="TestResult" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

相同
<xs:element name="GetRateResponse">
    <xs:element minOccurs="0" maxOccurs="1" name="GetRateResult" type="tns:CARateResponseCollection"/>
</xs:element>

<wsdl:message name="ISoapService_Test_OutputMessage">
    <wsdl:part name="parameters" element="tns:String"/>
</wsdl:message>

应该是

<wsdl:message name="ISoapService_Test_OutputMessage">
  <wsdl:part name="parameters" element="tns:TestResponse"/>
</wsdl:message>

最后

<wsdl:message name="ISoapService_GetRate_OutputMessage">
    <wsdl:part name="parameters" element="tns:CARateResponseCollection"/>
</wsdl:message>

必须

<wsdl:message name="ISoapService_GetRate_OutputMessage">
        <wsdl:part name="parameters" element="tns:GetRateResponse/>
</wsdl:message>