2

Web サービスを介してデータベースにデータを挿入できるアプリケーションを作成しようとしています。ADO データベースへの接続は良好ですが、メイン アプリケーションから Web サービスに情報を送信しようとすると、次のエラーが発生します。

ServiceModel クライアント構成セクションで、コントラクト 'MathServiceReference.IMathService' を参照する既定のエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素に見つからなかったためである可能性があります。

私のメインアプリ

protected void btnMultiply_Click(object sender, EventArgs e)
{
    ServiceReference1.MathServiceClient client = new ServiceReference1.MathServiceClient();
    txtSvar.Text = client.Multiply(int.Parse(txtTal2.Text)).ToString();
}

私の Wwb サービスの私のクラス

public int Multiply(int box2)
{
    if (box2 == null)
    {
        return 1;
    }
    else
    {
        koppling db = new koppling();
        var testet = new tests();
        testet.namn = box2.ToString();
        db.tests1.AddObject(testet);
        db.SaveChanges();
        return 2;
    }
}

私のWCF構成:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
</configuration>
4

2 に答える 2

3

WCF 構成には、少なくとも 1 つのエンドポイントがありません。

<system.serviceModel>
    <services>
        <service name="MathService">
            <endpoint binding="netTcpBinding" contract="MathServiceReference.IMathService" />
        </service>
    </services>
</system.serviceModel>
于 2012-12-09T09:09:05.187 に答える
-1

次のコード例を参照してください。

var jokeService = new JokeOfTheDayServiceClient();
jokeService.GetJokeCompleted += (s,e) =< jokeService_GetJokeCompleted;

private void jokeService_GetJokeCompleted(object sender, GetJokeCompletedEventArgs e)
{
    if (!e.Cancelled)
    {
        jokeTextBlock.Text = e.Result;
    }
}

あなたの問題は、クライアントが通信を完了したときに呼び出される「完了」関数が必要であるようです。すぐにアクセスしようとすると、ネットワークがまだ情報の伝達を完了していない可能性があります。

于 2012-12-09T02:37:30.370 に答える