没有频道积极倾听

时间:2012-03-30 13:14:05

标签: c# winforms wcf iis

也许你可以帮我设置我的WCF服务。

首先,这是我的配置文件:

<system.serviceModel>
  <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

  <bindings />
<services>
  <service name="AuthenticatorService.Authenticator">
    <endpoint address="auth" binding="basicHttpBinding" bindingConfiguration=""
      name="AuthEndpoint" contract="AuthInterface.IAuthenticator" />
    <endpoint address="mex" binding="mexHttpBinding" name="MetadataEndpoint"
      contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="True" />
      <serviceDebug includeExceptionDetailInFaults="True" />
    </behavior>
  </serviceBehaviors>
</behaviors>

这就是我从c#调用我的服务的方式:

        //This creates a link to the WCF service using basicHttpBingind
        httpFactory = new ChannelFactory<IAuthenticator>(new BasicHttpBinding(), new EndpointAddress("http://myUrl/auth.svc"));

        httpProxy = httpFactory.CreateChannel();

当我在localhost上执行此操作时它工作正常,但现在它一直告诉我没有找到端点。

此外,服务器生成以下错误:

System.ServiceModel.EndpointNotFoundException:没有频道主动收听'http://myURL/auth.svc/$metadata'。这通常是由错误的地址URI引起的。确保将消息发送到的地址与服务正在侦听的地址匹配。

我真的很困惑,我不知道为什么会这样。我是否需要为元数据交换创建另一个服务文件?

我是否需要设置baseAddress?

由于

1 个答案:

答案 0 :(得分:0)

您是如何部署该服务的?我假设该服务正在您的盒子上的IIS中运行 - 您是否尝试在浏览器中访问服务URL(http://myUrl/auth.svc)以查看它是否确实已启动?