1

次の場所にサービス ファイルがあります。

C:\Documents and Settings\U16990\My Documents\Visual Studio 2010\Projects\CalculationService\CalculationService\CalculationService.svc

svc ファイルを参照すると、正常に動作しています。サービス エンドポイントは次のとおりです。現在、アドレスに使用される相対アドレスです。

  <service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint address="CalculationService" behaviorConfiguration=""
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
        contract="ICalculationService" />
  </service>

私のマシンの IP アドレスは 10.10.179.180 //InterNetwork AddressFamily です

絶対パスを使用するようにアドレスを変更すると、エラーがスローされます。

<services>
  <service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint 
    address="http://10.10.179.180/C:/Documents and Settings/U16990/My Documents/Visual Studio 2010/Projects/CalculationService/CalculationService/CalculationService.svc/CalculationService"
    behaviorConfiguration=""
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
    contract="ICalculationService" />
  </service>
</services>

エラー:: 指定されたアドレス ' http://10.10.179.180/C:/Documents and Settings/U16990/My Documents/Visual Studio 2010/Projects/CalculationService/CalculationService/CalculationService.svc/CalculationService' に一致するプロトコル バインディングはありません。プロトコル バインディングは、IIS または WAS 構成のサイト レベルで構成されます。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

それを修正するために何ができますか?

注: Visual Studio 2010でサービスをテストしています。

参照:

  1. コンソールで単純な Wcf サービスをホストする
  2. エラー「指定されたアドレスに一致するプロトコルバインディングはありません...」
  3. IISでホストされているWCFサービスからWebサイトの絶対ファイルパスを取得する方法は?
4

1 に答える 1

3

エンドポイント アドレスはファイルの場所ではなく、クライアントがサービスを見つけられる/見つける URI です。おそらく次のようなものを使用する必要があります。

<service name="CalculationService.CalculationService" behaviorConfiguration="MyServiceTypeBehaviors">
    <endpoint 
        address="http://10.10.179.180/CalculationService/CalculationService.svc"
        behaviorConfiguration="" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_CalculationServiceInterface"
        contract="ICalculationService" />
</service>

この場合、相対 URI ではなく完全な URI を使用しています。クライアントでは、エンドポイントが同じアドレスを参照していることを確認する必要があります。

于 2012-09-14T08:04:21.327 に答える