2009-04-14 8 views
0

私はwcfサービスを呼び出すSilverlightプロジェクトを持っています。私のローカルマシンではすべて正常に動作します。Silverlight WCFのサービスが変わって

しかし、仮想マシンにデプロイするとき、全く同じクエリでwcfサービスは結果を返しますが、結果は空です。

私はデバッグを試みましたが、wcfサービスを中断することができませんでした。

問題がどのようなものか、どのように私はそれをデバッグすることができますか?

おかげ


私は問題が何であるかを考え出したが、解決策が何であるかわかりません。私のSilverlightプロジェクトで

私が参照していますWCFサービスは、私が作った要求を確認するために私のVM上でシオマネキを使用し、代わりに、上記のサービスに連絡しようとする、それが連絡しようとしていたhttp://localhost/.../SilverlightApiService.svc

です:

http:///.../SilverlightApiService.svc

ので、何らかの理由で私のマシン名は、そこの代わりにローカルホストの中に挿入されつつあります。これに関するいかなる考えも認められるでしょう。

+0

はあなたがバイオリンを試してみました:

は私のサービスクライアントのインスタンスを作成するときに、サービス参照のためにどのようなURLを使用するプログラムで指定し、私がしなければならなかった何でしたか? –

答えて

0

もう少し詳しくお聞かせください。どのようなバインディングを使用していますか?サービス設定とクライアント設定はどのように見えるのですか?どこからデータを取得して返されますか? VM上のサービスだけでデータを取得できないのでしょうか? (例えば、単にデータが要求されていないデータベースを照会?)

マルク・

+0

basicHttpBindingを使用しています。クライアントサービス参照は追加参照を使用して追加されました。私は、コンソールアプリケーションを作成してサービスを参照し、Silverlightから呼び出されたときに結果を返さないクエリを使用して結果を返すため、データがそこにあることを知っています。 –

0

私は前に起こることがありました。私はこれを試してみる。 Webサービスファイルとして開始ページを設定し、アプリケーションを実行します。次に、開始ページをデフォルトのページに戻します。次に、SLプロジェクトのすべてのサーバー参照を更新します。すべてを再コンパイルして再発行する。これは私が過去に何度も助けてくれました。

0

問題の原因はわかりましたが、解決策がわかりません。私のSilverlightプロジェクトで

私が参照していますWCFサービスは、私が作った要求を確認するために私のVM上でシオマネキを使用し、代わりに、上記のサービスに連絡しようとする、それが連絡しようとしていたhttp://localhost/.../SilverlightService.svc

です:

ます。http:///.../SilverlightService.svc

だから、私のマシン名はlocalhostの代わりにそこに挿入されたばかり何らかの理由。これに関するいかなる考えも認められるでしょう。

1

amazon ec2にデプロイするときにこの問題が発生しました - サービスのマシン名がdnsではなくwsdlに返されていました。

いくつかの解決策がありました(1つは静的なwsdl-yuckを作成することでした!)

しかし、他は http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c7fd51a2-773e-41d4-95a0-244e925597fe/

(あなたはそれをすべて読むことができますが、答えは一番下にある。)との若干の没落をサービス

このスレッドの工場出荷時のパターンのようなものを作成していましたこれは動作しますが、サーバーの場所を変更した場合は、設定を更新することを忘れないようにする必要があります。これは難しくないものの、忘れるのは簡単です。

0

私はそれを理解しました。

基本的に私のマシン名はSilverlightプロジェクトのServiceReferences.ClientConfigファイルにハードコードされていました。

System.ServiceModel.EndpointAddress address = new System.ServiceModel.EndpointAddress(new Uri 
     (Application.Current.Host.Source, "../WebServices/SilverlightService.svc")); 

     ServiceClient serviceClient = new ServiceClient("BasicHttpBinding_IService", address); 
関連する問題