8

非常に単純な Silverlight アプリケーションのサンプルがあります。1 つのエンティティを持つエンティティ モデルを使用して、それにドメイン サービスを追加しました。クライアント アプリは、起動時にエンティティ内のすべての行をロードするだけです。これを開発ボックスで実行すると、期待どおりに動作します。ただし、テスト サーバーに移動すると、呼び出しているメソッドが見つからないという例外が発生します (クエリ 'GetCTCStation' の読み込み操作が失敗しました。リモート サーバーがエラーを返しました。NotFound.)。クライアントとサーバーの通信を Fiddler で詳しく調べたところ、リクエストがhttp://[server url]/ClientBin/SilverlightApplication7-Client-Web-CTCService.svc/binaryに送信されていることがわかりました。. ドメイン サービスを Web プロジェクトのルートに追加したので、クライアントが ClientBin ディレクトリでドメイン サービスを探している理由がわかりません。明らかにそこにはありません。ここで何が間違っていますか?RIA の 7 月のプレビュー バージョンで問題が発生したことはありません。


これは相対的ですが、Generated_Code ファイルで自動的に処理されます。そして、設定する webconfig には何もありません。ドメイン サービスを作成するときは、既定の設定を使用しました。サービスをインスタンス化するときに uri を明示的に設定しようとしましたが、同じ例外が発生しました。

4

10 に答える 10

9

長い闘争と多くの異なるオプションを試した後、最終的に解決策を見つけました. この投稿がでした:

基本的に、プロジェクトを公開するときに、いくつかの dll が bin フォルダーに含まれていませんでした。[参照] で、次の dll が正しくセットアップされていることを確認します (System.ComponentModel.DataAnnotations がC:\Program Files\Microsoft SDKs\RIA Services\v1.0\Libraries\Server\System.ComponentModel.DataAnnotations.dllを指していることを確認してください) 。 ):

System.ComponentModel.DataAnnotations と、System.Web で始まるすべての dll では、"Copy Local" を true に設定する必要があります。

プロジェクトをビルドし、再度公開します。これで問題は解決しました。

(このスレッドや他のスレッドで) この問題の解決に貢献してくれたすべての人に感謝します。

于 2009-12-09T15:29:17.540 に答える
1

この問題も発生しました(RIAは「NotFound」を返します)が、私の場合、クエリがmaxitemsinobjectgraphで許可されているよりも多くの行を返すことになりました。私の一時的な解決策は、結果セットを減らすために.Take(5000)を追加することでしたが、永続的な解決策では、以下で参照するようにmaxitemsinobjectgraphを拡張する必要があります。これが他の誰かを助けることを願っています...

<behaviors>    
 <behavior name="MyServiceBehavior">        
  <dataContractSerializer maxItemsInObjectGraph="3" />    
 </behavior>
</behaviors>

デフォルト値はInt32.MaxValueまたは2,147,483,647であることに注意してください

MSDN-maxItemsInObjectGraph

MSDN-Int32.MaxValue

于 2011-08-02T14:17:34.533 に答える
1

1) どの IIS にデプロイしていますか? 7 未満の場合、ホットフィックスが必要です

2) 以下を含むすべての RIA アセンブリを含めます (Set Copy Local => True)。

System.Web.Ria

System.Web.DomainServices. (使用するものに応じて 4 つあります)

3) これは、ASPNET アプリケーションのノードが Windows に設定されているのに、サイトが IIS で匿名に設定されていることが原因である可能性があります。ほとんどの場合、node を mode=”Forms” に変更するだけでこのエラーが解消され、続行できるようになります。その他の場合、IIS 構成が統合認証と匿名の両方を使用するように設定されている場合は、IIS 管理コンソールのサイトのディレクトリ セキュリティ設定でいずれかのチェックを外します。

于 2009-12-23T15:47:14.273 に答える
1

Microsoft は、MSDNで Ria Services をサーバーにインストールすることを推奨しています。

アプリケーションをホストする Web サーバーに RIA サービスをインストールすることをお勧めします。

ここには、おそらくほとんどの人がこのソリューションをためらうのを目にするであろうトリックがあります。インストールでは、通常はサーバーにインストールしたくない多くの前提条件がデフォルトでリストされます。

前提条件チェック

次の必要なコンポーネントがありません:

  • Microsoft Visual Studio 2010 以降または Visual Web Developer 2010
  • Express Microsoft Silverlight 4 Developer Runtime 以降 Microsoft
  • Silverlight 4 SDK または Microsoft Silverlight 5 SDK

コマンド ライン引数を指定してインストールを実行すると、SERVER=TRUEこのチェックがバイパスされます。

msiexec /i RiaServices.msiサーバー = TRUE

また、将来のバージョンで変更される可能性のある特定の dll セットに対して特別な構成を必要としないため、このソリューションを使用することをお勧めします。また、これらのファイルが含まれないため、発行プロセスがわずかに高速になります。

また、 Web Platform Installerを使用して、スイッチと同じ効果を持つ'WCF RIA Services Server install for .Net Framework 4.0'を使用して Ria Services をサーバーにインストールできることにも注意してください。SERVER=TRUE残念ながら、これはバージョン 1 のみであり、サービス パック 2 がありません。

于 2012-11-05T11:33:45.353 に答える
1

そのサービス リクエストのエラーを調べると (これは通常の表示方法です)、Fiddler の内容は何を示していますか? プラグインでは NotFound が一般的ですが、フィドラーは HTTP 500 などを応答本文に詳細に表示する可能性があります。

于 2009-12-09T04:19:48.180 に答える
1

私の場合、解決策は、WebSite の References フォルダーから次のアセンブリの「Copy Local」プロパティを「True」に設定することでした。

System.ComponentModel.DataAnnotations  
System.ServiceModel.DomainServices.EntityFramework  
System.ServiceModel.DomainServices.Hosting  
System.ServiceModel.DomainServices.Hosting.OData  
System.ServiceModel.DomainServices.Server  
System.Web.ApplicationServices  
System.Web  
System.Web.Extensions  
System.Web.Mobile  
System.Web.Services

次回の再構築後にすべてが正しければ、それらのアセンブリはプロジェクトの bin フォルダーにコピーされます。

私が実行しなかったIIS 7の便利な構成は何が良いでしょうか。

于 2010-10-14T15:02:27.317 に答える
0

私にとっては、IISで認証が「匿名」に設定されていなかったということです。Fiddlerを使用して生成されたRIASCVURLを取得し、ブラウザーでURLを開きました。メッセージは非常に明白でした。

匿名アクセスを許可し、アプリケーションプールを再起動するだけで、すべてが期待どおりに機能していました。

于 2012-03-02T16:23:37.787 に答える
0

WCF RIA サービス VS 2008 展開エラー

ネット上にはたくさんの素敵な投稿があり、最高のものはここにあるようです(Tim に感謝)

私が見つけたすべての投稿は何らかの形で役に立ちましたが、私の場合の最終的な解決策は不適切な DB 接続文字列でした。VS で生成された DB 文字列は VS 内で正常に機能しましたが、次のようにトリミングするまで QA サーバーに展開できませんでした。

add name="myEntities" connectionString="metadata=res://*/ReviewsModel.csdl|res://*/ReviewsModel.ssdl|res://*/ReviewsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dataSource;Initial Catalog=intitalCatalog;User ID=userID;Password=password;&quot;" providerName="System.Data.EntityClient" 
于 2010-04-16T21:42:32.800 に答える
0

バインディング構成のアドレス部分を確認しましたか? 相対アドレスを使用しているようです。

于 2009-12-08T20:43:31.557 に答える
0

WCF RIA サービス VS 2008 展開エラー ここでは、ダウンロード例を探しているソリューションを示し、セルフライブ WCF RIA (Vs2008) サービスを確認してください。

于 2010-05-28T21:52:52.890 に答える