2

ここに画像の説明を入力 ユーザー名とパスワードをチェックするための WCF Web サービスを作成し、MYSQL データベースを使用してユーザー名とパスワードが存在するかどうかをチェックします。ユーザー名、パスワード、ログインボタン用の2つのテキストボックスを使用してWP7でアプリケーションを作成しました。アプリケーションを実行すると、「KeyNotFoundException」が発生します。私にその理由を教えてください。

my code is here

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using consumeWCFwp7DB.ServiceReference1;
namespace consumeWCFwp7DB
{
public partial class MainPage : PhoneApplicationPage
{
    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }

    private void btnadd(object sender, RoutedEventArgs e)
    {
        ServiceReference1.ServiceClient obj = new ServiceReference1.ServiceClient();
        string username = txtusername.Text.ToString();
        string password = txtpassword.Text.ToString();
        obj.loginAsync(username, password);
   obj.loginCompleted+=new EventHandler<loginCompletedEventArgs>  (obj_loginCompleted);
    }
    void obj_loginCompleted(object sender, loginCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            MessageBox.Show(e.ToString());
        }
        else
        {
            MessageBox.Show("Error");
        }
    }
}
}
4

3 に答える 3

0

サービスでファイル Web.config を変更します。

<endpoint address="" 
          binding="basicHttpBinding" 
          contract="WcfServiceForWinMobile.IWin7MobileService"/>
于 2013-11-18T17:48:01.213 に答える
0

例外は Reference.cs にあります。これは、エラーをスローしているのは電話アプリケーションではなく、WCF Web サービスであることを意味します。これが実行されている間にサービスをデバッグし、エラーがスローされている場所を見つけて、それに応じて修正/キャッチすることをお勧めします。

編集: ASP.NET アプリから正常に動作しているというコメントに気付きました。これはおそらく、キーが正しく受信されていないことを意味します。また、エラーを処理していないことも意味します。

于 2013-01-21T10:19:03.333 に答える
0

サービスのバインド設定を再確認する必要があります。あなたはそのためだけに構成WSHttpBindingしたと思います。ただし、Silverlight と Windows Phone 7 はサポートしていませんWSHttpBinding。唯一のバインディングWindows Phone 7サポートはBasicHttpBindingであるため、サービスを で構成する必要があります。そうすればBasicHttpBinding、クライアント呼び出しが機能します。

これKeyNotFoundExceptionは、デフォルトのバインディング ( BasicHttpBinding) がサービスのバインディング リストに存在しないためです (サービスWSHttpBindingでのみ見つかります)。

于 2013-02-17T07:53:55.237 に答える