2

私は WCF 4 サービス プロジェクトを持っています。F5 を押してhttp://localhostも、ファイル ディレクトリが表示されます。WCF Service Host を実行していない理由がわかりません。WCF サービス プロジェクトをスタートアップ プロジェクトとして設定しています。

  <!-- SOAP Binding -->
  <basicHttpBinding>
    <binding name ="soapBinding">
        <security mode="None"></security>
    </binding>
  </basicHttpBinding>

  <!-- Enable RESTful Endpoints-->
  <webHttpBinding>
      <binding name="webBinding"></binding>
  </webHttpBinding>

たとえば、別の C# プロジェクトに追加し、サービス参照を介して追加する場合、これは WSDL を作成します。そのため、同じ URL (DID が wsdl を作成する C# プロジェクトに追加したばかりの URL) を指定した後、テスト クライアントに何も表示されない理由がわかりません。 OKですが、正常に追加されたと表示された直後のテスト クライアント UI には何も表示されません。私は別の開発マシンで試してみましたが、彼は私のサービスと同じ取引をしています。

更新 - セットアップに関する私の側からの詳細情報:

WCF サービス プロジェクトの Web.config

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>

  <system.serviceModel>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
        <serviceActivations>
            <add relativeAddress="Events.svc" service="OurCompany.API.OurService"/>
        </serviceActivations>
    </serviceHostingEnvironment>

    <bindings>

      <!-- SOAP Binding -->
      <basicHttpBinding>
        <binding name ="soapBinding">
            <security mode="None"></security>
        </binding>
      </basicHttpBinding>

      <!-- Enable RESTful Endpoints-->
      <webHttpBinding>
          <binding name="webBinding"></binding>
      </webHttpBinding>

    </bindings>


    <behaviors>

      <endpointBehaviors>

        <!-- allow XML REST -->
        <behavior name="poxBehavior">
            <webHttp defaultOutgoingResponseFormat="Xml" automaticFormatSelectionEnabled="true"/>
        </behavior>

        <!--<behavior name="jsonBehavior"><enableWebScript/></behavior>-->
        <!-- allow JSON REST -->
        <behavior name="jsonBehavior">
            <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Json"/>
        </behavior>

      </endpointBehaviors>

      <serviceBehaviors>

        <behavior name="defaultBehavior">
            <serviceDebug includeExceptionDetailInFaults="true" />
            <serviceMetadata httpGetEnabled="true" />
        </behavior>

      </serviceBehaviors>

    </behaviors>


    <services>

      <service name="EventInventory.API.Events" behaviorConfiguration="defaultBehavior">
          <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
          <!--<endpoint address="soap" binding="basicHttpBinding" bindingConfiguration="soapBinding" contract="OurCompany.API.IOurService" />-->
          <!-- <endpoint address="json" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="jsonBehavior" contract="OurCompany.API.IOurService" />-->
          <!--<endpoint address="xml" binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="poxBehavior" contract="OurCompany.API.IOurService" />-->
          <endpoint binding="webHttpBinding" bindingConfiguration="webBinding" behaviorConfiguration="jsonBehavior" contract="OurCompany.API.IOurService" />
      </service>

    </services>

  </system.serviceModel>


  <system.webServer>

    <modules runAllManagedModulesForAllRequests="true"/>
    <directoryBrowse enabled="true"/>

  </system.webServer>

</configuration>

Visual Studio でプロジェクトを確認する

(画像を右クリックして新しいタブで表示することを選択すると、100% サイズの jpeg がはっきりと表示されます) ここに画像の説明を入力

4

3 に答える 3

0

ソリューション内の .svc ファイルを強調表示 (クリック) してから、F5 キーを押してください。これにより、WCF テスト クライアントが起動します。それはあなたが探しているものですか?

于 2013-10-21T18:29:52.777 に答える
0

SOAP エンドポイントが有効になっていないことがわかりました。当たり前。バインディング タイプ basicHttpBinding のエンドポイントが必要です

于 2013-10-21T21:14:44.067 に答える