2

私の Visual Studio ソリューションには 2 つのプロジェクトがあります。1 つはWcfService アプリケーション プロジェクトで、もう 1 つは Web サービスにローカルにアクセスするためのServiceReferenceを持つ通常のC# Silverlight プロジェクトです。

Web サービスの変更がSL プロジェクトに表示されないという事実を除いて、基本的にすべて正常に動作します。

たとえば、サービスのインターフェイスの [DataContract] クラスの属性を変更すると、両方のプロジェクトが正常にコンパイルされますが、SL プロジェクトで Web サービスにアクセスすると、変更前の状態しかありません。

VisualStudios ObjectBrowser で ServiceReference を表示すると、同じ結果が得られます。変更されていない My Web Service です。

組み込みの自動「サービス参照の追加」機能を使用して、ServiceReference を SL プロジェクトに追加しました。Web サービスを変更するたびに、SL プロジェクトのサービス参照で [サービス参照の更新] をクリックすると成功しますが、効果はありません。サービス参照を削除して再度追加しても属性が変更された Web サービスは表示されません。

数日前にサービス プロジェクトの名前を変更したためかもしれません。ソリューションからサービス プロジェクトをアンロードし、ファイル システム内のフォルダーの名前を変更して、「既存のプロジェクト」としてソリューションに再度追加しました。次に、サービス ファイル (.svc & .svc.cs) とサービス インターフェイス ファイルの名前を変更しました。==>その後、認識されていない変更を除いて、すべてが正常に機能しているようです?! また、このサービスに ServiceReference を追加すると、新しいファイルではなく、名前を変更した 2 つのファイルの古い名前が表示されます!?

ここで何が起こっているのか、誰にも手がかりがありますか? この長い質問を読んでくれてありがとう;)

4

1 に答える 1

3

問題を解決する 1 つの方法 (OK、おそらく最善の解決策ではなく、おそらく最悪の解決策でさえありますが、うまくいくと確信しています) は、一連のクリーンアップを行うことです。

  • SL プロジェクトからサービス参照を削除する
  • 削除したサービス参照に関連するすべてのファイル システムを削除します (つまり、関連するファイル/フォルダーを SL プロジェクト ディレクトリにドロップします)。
  • また、SL csproj (または vbproj) ファイルをメモ帳で開き、サービス参照に関連する行を削除します (ファイル内で「Service References」を検索します)。
  • 新しい WcfService アプリケーション プロジェクトを最初から作成し、必要なもの (参照、ファイルなど) を追加して、現在の WcfService プロジェクトを反映させます。
  • 古い W​​cfService プロジェクトを削除します
  • 新しい WcfService プロジェクトをコンパイルします
  • 新しい WcfService プロジェクトをサービス参照として SL プロジェクトに追加します

わかりました、これを行うと少し時間がかかりますが、うまくいきます。

于 2011-12-28T14:27:49.863 に答える