1

我认为这可能是由于没有/需要在配置中指定任何基地址。其他一切正常,包括发布 WSDL、调用服务等,但是当我添加 MEX 端点并尝试访问它时,它返回 503 服务不可用。

我的 web.config 看起来像这样:

<system.serviceModel>
  <bindings>
    <basicHttpsBinding>
      <binding name="ServiceBinding" />
    </basicHttpsBinding>
  </bindings>
  <services>
    <service name="MyServices.CatService" behaviorConfiguration="MyBehavior">
      <endpoint address="" binding="basicHttpsBinding" bindingConfiguration="ServiceBinding" contract="MyServices.ICatService"></endpoint>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="MyBehavior">
        <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
        <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
        <!-- 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>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>

当我浏览到我的服务时,我收到以下消息:

您已经创建了一个服务。要测试此服务,您需要创建一个客户端并使用它来调用该服务。您可以使用命令行中的 svcutil.exe 工具执行此操作,语法如下:svcutil.exe http://[mypc]/MyServices/CatService.svc/mex

我有理由确定这与定义端点的方式有关,但我不知道如何解决它。有任何想法吗?

4

1 回答 1

2

已解决 - 我复制并粘贴的上述 mex 示例是 http,而不是 https。我改变了它 mexHttpsBinding 并且效果很好。我认为由于在本地运行 http 的某些配置,http 不起作用,但我不确定。

于 2013-06-07T10:05:56.773 回答