none
WCF 添加服务失败 服务元数据可能无法访问 求知道 RRS feed

  • 问题

  • 我学习WCF参照着资料(介绍WCF 3.0的) 编写了一个简单的服务程序

    发布到 本地 IIS(环境:VS2010 IIS7 Windows7)

    很迷惑的是 用IE访问服务程序可以测通,用WCF测试客户端则无法测通

    WCF测试客户错误信息如下:添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。

    错误: 无法导入 wsdl:portType详细信息: 在运行 WSDL 导入扩展时引发异常: System.ServiceModel.Description.DataContractSerializerMessageContractImporter错误: 找不到目标命名空间为“http://www.thatindigogirl.com/samples/2006/06”的方案。错误来源的 XPath: //wsdl:definitions[@targetNamespace='http://www.thatindigogirl.com/samples/2006/06']/wsdl:portType[@name='IHelloIndigoService']错误: 无法导入 wsdl:binding详细信息: 导入 wsdl:binding 所依赖的 wsdl:portType 时出错。wsdl:portType 的 XPath: //wsdl:definitions[@targetNamespace='http://www.thatindigogirl.com/samples/2006/06']/wsdl:portType[@name='IHelloIndigoService']错误来源的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='BasicHttpBinding_IHelloIndigoService']错误: 无法导入 wsdl:port详细信息: 导入 wsdl:port 所依赖的 wsdl:binding 时出错。wsdl:binding 的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='BasicHttpBinding_IHelloIndigoService']错误来源的 XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:service[@name='HelloIndigoService']/wsdl:port[@name='BasicHttpBinding_IHelloIndigoService']警告: 未生成任何代码。如果尝试生成客户端,此问题可能是由于元数据文档中未包含任何有效的约定或服务所致,或者由于发现所有约定/服务均存在于 /reference 程序集中所致。请验证是否已将所有元数据文档传递给工具。警告: 如果要通过架构生成数据约定,请确保使用 /dataContractOnly 选项。

    ====================================================================

    如下是在IE上访问:http://localhost/IISHostedService/Service.svc

    若要测试此服务,需要创建一个客户端,并将其用于调用该服务。可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作:

    svcutil.exe http://pc-20110528nwka/IISHostedService/Service.svc?wsdl

    ...

    ===================================================================

    在地址 http://pc-20110528nwka/IISHostedService/Service.svc?wsdl 看到(这里出了问题?)

    <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions name="HelloIndigoService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:i0="http://www.thatindigogirl.com/samples/2006/06" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
      <wsdl:import namespace="http://www.thatindigogirl.com/samples/2006/06" location="http://pc-20110528nwka/IISHostedService/Service.svc?wsdl=wsdl0" />
      <wsdl:types />
    - <wsdl:binding name="BasicHttpBinding_IHelloIndigoService" type="i0:IHelloIndigoService">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="HelloIndigo">
      <soap:operation soapAction="http://www.thatindigogirl.com/samples/2006/06/IHelloIndigoService/HelloIndigo" style="document" />
    - <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
    - <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="HelloIndigoService">
    - <wsdl:port name="BasicHttpBinding_IHelloIndigoService" binding="tns:BasicHttpBinding_IHelloIndigoService">
      <soap:address location="http://pc-20110528nwka/IISHostedService/Service.svc" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

     

    感觉还是IIS7配置不正确,求高人指点!


    2011年6月20日 2:32

全部回复