1

次の構成の WCF サービスがあります。

 <service behaviorConfiguration="LoginService.LoginBehavior" name="AuthenticationServices.Login">

        <endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
          bindingConfiguration="WebHttpEndpointBinding"
                  contract="AuthenticationServices.ILoginService">
          <identity>

サービスをテストするために、サービスを利用するコンソール アプリケーションを作成しました。

 static void Main(string[] args)
        {
            LoginService.LoginServiceClient client = new WCFDriver.LoginService.LoginServiceClient();
             client.ValidateUserID();
        }

コンソール アプリからサービスを呼び出すと、次のエラーがスローされます。

Unhandled Exception: System.InvalidOperationException: The Address property on C
hannelFactory.Endpoint was null.  The ChannelFactory's Endpoint must have a vali
d Address specified.
   at System.ServiceModel.ChannelFactory.CreateEndpointAddress(ServiceEndpoint e
ndpoint)
   at System.ServiceModel.ChannelFactory`1.CreateChannel()
4

1 に答える 1

3

サービスまたは特にエンドポイント(複数のエンドポイントがある場合)のアドレスを指定する必要があります。

サービスのために

<service behaviorConfiguration="LoginService.LoginBehavior" name="AuthenticationServices.Login">

<endpoint address="" behaviorConfiguration="web" binding="webHttpBinding"
      bindingConfiguration="WebHttpEndpointBinding"
              contract="AuthenticationServices.ILoginService"/>
<host>
  <baseAddresses>
    <add baseAddress="http://localhost:5804/SimplePluginService.svc"/>
  </baseAddresses>
</host>

エンドポイントの場合

<endpoint address="myEndPoint" behaviorConfiguration="web" binding="webHttpBinding"
      bindingConfiguration="WebHttpEndpointBinding"
              contract="AuthenticationServices.ILoginService"/>

エンドポイントのアドレスは、ベースアドレスの後に追加されます。

IISを使用してWCFサービスをホストする場合、ベースアドレスはIISからではなく、IISの調整から取得されます。<baseAddresses>

于 2012-07-20T13:23:35.467 に答える