问题描述
我试图在我的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>