none
请问wcf服务的配置文件的behavior为什么不能起名称? RRS feed

  • 问题

  • 在客户端添加引用时会报错,报错信息如下:

    HTML 文档不包含 Web 服务发现信息。
    元数据包含无法解析的引用:“http://localhost:8583/Service1.svc”。
    服务 http://localhost:8583/Service1.svc 不支持内容类型 application/soap+xml; charset=utf-8。客户端和服务绑定可能不匹配。
    远程服务器返回错误: (415) Unsupported Media Type。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

    其实Service1.svc只是新建的一个初始化文件,其他什么程序都没加呢,只是改一下配置的Behavior的名称,

    当没有name的时候,就能正常添加了, 请问这是什么原因?


    • 已编辑 尺蠖 2013年12月3日 6:49
    2013年12月3日 6:45

答案

  • 在客户端添加服务引用时报错啊

    HTML 文档不包含 Web 服务发现信息。
    元数据包含无法解析的引用:“http://localhost:15993/Service1.svc”。
    服务 http://localhost:15993/Service1.svc 不支持内容类型 application/soap+xml; charset=utf-8。客户端和服务绑定可能不匹配。
    远程服务器返回错误: (415) Unsupported Media Type。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

    <service behaviorConfiguration="Service1Behavior" name="Service1">

    注意这里的 name ,这个 name 表示服务契约实现类,你确定你的 class Service1 没有带命名空间吗?

    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="FileTransferServicesBinding" contract="IService1"/>

    注意这里的 contract ,这个 contract 表示你的服务契约类,你确定你的 interface IService1 没有前置的命名空间吗?


    • 已编辑 Skyseer 2013年12月3日 8:04
    • 已标记为答案 尺蠖 2013年12月3日 8:33
    2013年12月3日 8:04

全部回复

  • 你这里改了 name,那么你的 Service 配置的 BehaviorName 是否为你这个 name 呢?
    2013年12月3日 7:04
  • 有没有都报错

    <?xml version="1.0" ?>
    <configuration>
    
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
      </system.web>
      <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="FileTransferServicesBinding" maxReceivedMessageSize="2147483647" messageEncoding="Mtom" transferMode="Streamed" sendTimeout="00:10:00"/>
          </basicHttpBinding>
        </bindings>
        <services>
          <service behaviorConfiguration="Service1Behavior" name="Service1">
            <endpoint address="" binding="basicHttpBinding" bindingConfiguration="FileTransferServicesBinding" contract="IService1"/>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
          </service>
        </services>
    
    
        <behaviors>
          <serviceBehaviors>
            <behavior name="Service1Behavior">
              
     <!--为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点--> 
    
              <serviceMetadata httpGetEnabled="true"/>
              
     <!--要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息--> 
    
              <serviceDebug includeExceptionDetailInFaults="false"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
     <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>
      
    </configuration>

    2013年12月3日 7:47
  • 报什么错误?什么时候报错误?运行时?编译时?
    2013年12月3日 7:50
  • 在客户端添加服务引用时报错啊

    HTML 文档不包含 Web 服务发现信息。
    元数据包含无法解析的引用:“http://localhost:15993/Service1.svc”。
    服务 http://localhost:15993/Service1.svc 不支持内容类型 application/soap+xml; charset=utf-8。客户端和服务绑定可能不匹配。
    远程服务器返回错误: (415) Unsupported Media Type。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

    2013年12月3日 7:54
  • 在客户端添加服务引用时报错啊

    HTML 文档不包含 Web 服务发现信息。
    元数据包含无法解析的引用:“http://localhost:15993/Service1.svc”。
    服务 http://localhost:15993/Service1.svc 不支持内容类型 application/soap+xml; charset=utf-8。客户端和服务绑定可能不匹配。
    远程服务器返回错误: (415) Unsupported Media Type。
    如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。

    <service behaviorConfiguration="Service1Behavior" name="Service1">

    注意这里的 name ,这个 name 表示服务契约实现类,你确定你的 class Service1 没有带命名空间吗?

    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="FileTransferServicesBinding" contract="IService1"/>

    注意这里的 contract ,这个 contract 表示你的服务契约类,你确定你的 interface IService1 没有前置的命名空间吗?


    • 已编辑 Skyseer 2013年12月3日 8:04
    • 已标记为答案 尺蠖 2013年12月3日 8:33
    2013年12月3日 8:04
  • 非常感谢,是没有加命名空间造成的,总算发现问题所在了,也解决了我另外一个问题,就是上传数据有50k限制的问题
    2013年12月3日 8:33