3

これがバグ/機能かどうかはわかりませんが、それを機能させる方法を見つける必要があります。

再作成するには、VS2012を使用し、RIAサービスを有効にして新しいSL5プロジェクトを開きます。別のプロジェクトを作成し、単純なWCFサービス(またはSL対応のWCF)を追加し、単純なオブジェクトを受け入れるか返すメソッドを追加します(1つの文字列プロパティを持つオブジェクトがあります)。これをサービス参照としてSLプロジェクトに追加してみてください。特に、次の警告でこのエラーが発生します。

カスタムツールの警告:Silverlight5と互換​​性のあるエンドポイントが見つかりませんでした。生成されたクライアントクラスは、コンストラクターを介してエンドポイント情報が提供されない限り使用できません。

生成されたコードは実際には生成されません。

サービスメソッドからオブジェクトを削除し、代わりに単純なstring / int / boolを使用すると、参照が適切に追加されることがわかりました。また、RIAを使用せずに通常のSLアプリに同じサービスを追加すると、すべてが期待どおりに機能します。サービスが機能しているこのアプリでRIAを有効にし、サービス参照を更新すると、生成されたコードは再び失われます。

RIAと外部WCFサービスの両方を使用するプロジェクトがあったため、これは以前は機能していたことを覚えています。これは新しいVS2012のものですか?この問題を解決する方法はありますか?

ありがとう、

Eyal

4

2 に答える 2

7

問題を再現できますが、Silverlight クライアントの参照アセンブリに System.ServiceModel.DomainServices.Client と System.ServiceModel.DomainServices.Client.Web アセンブリが 2 つある場合にのみ発生するようです。SL 5 をターゲットにしている場合のみ。

状況が許せば、試してみることをお勧めする 2 つの回避策を見つけました。

1) Silverlight アプリケーションを変更して、Silverlight 5 ではなく、Silverlight 4 をターゲットにするか、または 2) サービス参照を右クリックして、構成を要求します。「指定された参照アセンブリで型を再利用する」チェックボックスをクリックし、上記の 2 つを除くすべてのアセンブリを選択します。

これは、SL 5 または VS2012 に関連するバグのようです。より満足のいく答えが見つかったら、再投稿します。

于 2012-11-12T21:05:27.393 に答える
1

問題はSilverlight5が原因であり、vs2012にはいくつかのバグがあります。[vs2012を再起動することで解決できます]

ServiceRefrences.ClientConfigを見ると、空であることがわかります。ここに手動でサービス参照を入力する必要があります。設定ページの例を添付しました。それに応じて名前を変更する必要があります

<configuration>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService2" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647">
                <security mode="None" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="../Service2.svc" binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IService2" contract="ServiceReference1.IService2"
            name="BasicHttpBinding_IService2" />
    </client>
</system.serviceModel>

于 2013-01-29T06:21:36.973 に答える