0

WCF を学びたいので、それを使用するアプリケーションを作成してみることにしました。私が念頭に置いているのは、2 つのデータベースがあり、Web サービスを呼び出して (1 つのデータベースから) データを SSIS ADO.Net データ ソース (2 番目のデータベース) に渡す SSIS カスタム データ ソース拡張も作成したいということです。 .

ここで、SQL Server を使用して 2 つのデータベースを作成し、それぞれに 1 つのテーブルを作成しました。次に、Visual Studio で接続を追加し、サーバー インスタンスを指定しました。(.mdf ファイルは作成しませんでした)。この connectionString を Web.Config ファイルに追加しました

  <connectionStrings>
    <add name="dbconnection" connectionString=" 
         Data Source = SARE-VAIO;
         Integrated Security = true; 
         Initial Catalog = Database1"/>
  </connectionStrings>

基本的に Database1 にデータを入力するサービスを作成したとき、エンドポイントを定義したかったのですが、[WCF 構成の編集] をクリックすると、「サービスが定義されていません」と表示されますか? ここで何が間違っているのでしょうか?エラーのないサービスを作成して、SSIS パッケージのソースとして使用できるようにしたいと考えています。

PS。私のサービスにはbasicHttpsBindingがあります

更新: VS 2012 と .Net Framework 4.5 を使用しています

更新 2: 現時点ではエンドポイントの定義をスキップし、WCF のテストと展開に進みました。サービスを呼び出すと、次のエラーが表示されます

  Failed to invoke the service. Possible causes: The service is offline or inaccessible; 
  the client-side configuration does not match the proxy; the existing proxy is invalid. 
  Refer to the stack trace for more detail. You can try to recover by starting a new proxy, 
  restoring to default configuration, or refreshing the service.

これが私のweb.configファイルです

  <?xml version="1.0"?>
  <configuration>
    <connectionStrings>
      <add name="dbconnection" connectionString="Data Source = SARE-VAIO; Integrated        Security = true; Initial Catalog = Database1"/>
    </connectionStrings>
    <appSettings>
      <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    </appSettings>
    <system.web>
      <compilation debug="false" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5"/>
    </system.web>
    <system.serviceModel>
      <behaviors>
        <serviceBehaviors>
          <behavior>
            <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
            <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
            <!-- 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>
      <protocolMapping>
          <add binding="basicHttpsBinding" scheme="https" />
      </protocolMapping>    
      <serviceHostingEnvironment aspNetCompatibilityEnabled="true"       multipleSiteBindingsEnabled="true" />
    </system.serviceModel>
    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/>

      <directoryBrowse enabled="true"/>
    </system.webServer>

  </configuration>
4

1 に答える 1

0

あなたの質問に答えるために

(1)WCF構成エディターに「サービスが定義されていません」というエラーが表示される理由:web.configにサービスとエンドポイントが明示的に定義されていません(注:これをIISでホストすると、デフォルトのエンドポイントのためにいくつかのエンドポイントが追加されます機能。ただし、構成エディターツールには、明示的に定義されたエンドポイントのみが表示されます)。これが、構成エディターツールがこのメッセージを表示する理由です。ただし、このツールを使用してサービスとエンドポイントを追加できます。

(2)サービスをデプロイした後、サービスが正常にアクティブ化されたかどうかを確認します。これを行うには、メタデータURLを参照します(構成でメタデータが有効になっています)。サービスのWSDLヘルプページとWSDLが正常に表示されることを確認してください。そうでない場合は、最初にその問題を修正してください。

(3)IISでホストした後にデフォルトのhttpsエンドポイントを探している場合は、IISにSSL証明書で構成されたhttpsバインディングがあることを確認してください。

お役に立てれば!

ありがとう!

于 2012-09-24T19:00:31.200 に答える