2016-12-09 17 views
0

の「要求の送信中にエラーが発生しました」UWPアプリケーションがWCFサービスアプリケーションと通信しようとすると「要求を送信中にエラーが発生しました」というエラーメッセージが表示されますデータベースサーバーから)。このエラーは、Windows Mobile 10エミュレータと電話機でapp/serviceコンボが実行されている場合に発生します。一方、このアプリケーション/サービスのコンボは、ローカルマシン(私のWindows 10デスクトップPC)で正常に動作します。エミュレータまたは電話機でapp/serviceが実行されているときに、WCFサービスが実行されていないように見えます。可能であれば、この問題を解決したいと思います。これが不可能な場合は、代替案を提案してください。Windows Mobile 10エミュレータと電話で

私が達成しようとしているのは、データベースのデータを表示または更新するために、Windows 10の電話を使用してデータベースサーバー(SQL Server)(すべてインターネット上ではなくローカルのWiFiネットワークに接続する)です。 UWPはUWPのアプリは、このWebページに記載されているように直接データベースサーバーに接続することはできません。残念ながら:

https://code.msdn.microsoft.com/How-to-access-data-from-935e360c#content

そのウェブページによると、私は仲介者としてWCFサービスアプリケーションを作成する必要がありますUWPアプリとデータベースサーバーの間にそれが私のUWPアプリケーションに加えてWCFサービスアプリケーションが必要な理由です。

上記のWebページでサンプルプログラムを試したことに注意してください。残念ながら、それは私のアプリと同じ問題があります。

上記のように、サンプルプログラムと私のアプリケーションはどちらもローカルマシンで正常に動作します(データベースはローカルマシンにないデータベースサーバーにあります)。しかし、両方ともWindowsエミュレータまたはWindows Phoneで実行しているときに同じエラーが表示されます。

ベアボーンWCFサービスを使用してこれを絞り込もうとしましたが、データベース接続を排除するためにデータベースサーバーに接続しないアプリケーションは、この問題と関係があります。ベアボーンWCFサービスアプリケーションは、ハードコードされたテストデータをUWPアプリに返します。しかし、それでも同じ問題があります。つまり、問題はデータベース接続とは関係ありません。

ベアボーンWCFサービスアプリケーションは、WCFサービスアプリケーションテンプレートを使用して作成されます。私はクラス(Service1/IServiceからDbService/IDbServiceへ)の名前を変更しただけです。それには何もない。

エラーは、以下に示す例のGetDataAsync(...)ステートメントでトリガーされます。これは、UWPアプリのMainPage.xaml.csのOnLoaded()イベントハンドラである:任意の助けを事前に

private async void OnLoaded(object sender, RoutedEventArgs e) 
    { 
    try 
     { 
     RefDbService.DbServiceClient client1 = new RefDbService.DbServiceClient(); 
     String sTestMsg = await client1.GetDataAsync(12345); 
     // The above statement triggers the error in Emulator or in phone. 
     this.lblDebugMsg.Text = sTestMsg; 
     } 
    catch(Exception ex) 
     { 
     this.lblDebugMsg.Text = ex.Message; 
     } 
    } 

感謝。

ジェイチャン

+0

クライアントとサーバーのネットワーク接続を確認しましたか?それはネットワーク上の問題のようです。 – ZORRO

+0

申し訳ありませんが、私はおそらく私の元の投稿で明確ではなかった。UWPとWCFサービスは、同じデバイス(ローカルマシン、Windows Mobile 10エミュレータ、または実際のWindows 10 Phone)で実行されています。しかし、データベースサーバは(同じローカルエリアネットワーク内の)別のコンピュータにあります。私はこの追加情報を反映するために投稿を変更しました。つまり、UWPとWCFサービスは、コンボがローカルマシンで実行されている(データベースサーバーが別のマシンにある)場合、データベースサーバーから情報を取得するために問題がないため、ネットワーク上の問題ではありません。 –

+2

Windows 10 MobileでWCFサービスをどのようにホストしましたか? AFAIK、これは不可能ですが、Windows 10 Mobile上で従来のアプリケーションを実行することはできません。一般的なシナリオでは、WCFサービスは、サーバーホストのデータベースなど、サーバー上でホストされる必要があります。 – ZORRO

答えて

-1

最後のメッセージに間違ったURL(重複したURL)がありました。

実際に動作する小さなサンプルプログラム(WCFサービスとUWPアプリケーション)を作成しました。誰かが同じことをする必要がある場合は、このチュートリアルhttps://msdn.microsoft.com/en-us/library/ms734712(v=vs.110).aspxに従って、コンソールアプリケーションで動作するWCF Windowsサービスライブラリ(ホストプログラムが必要)を作成し、このWebページhttps://msdn.microsoft.com/en-us/library/ms733766(v=vs.110).aspxに従う方法を学ぶ必要がありますIISで実行されているWCF Webサービスアプリケーションに変換し、UWPで作業します。 WCFサービスの設定を変更するたびに、アプリケーションのサービスリファレンスを更新することを忘れないでください。

関連する問題