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 配置缺少端点,至少一个,例如:

<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 回答