トップ «前の日記(2010-12-04) 最新 次の日記(2010-12-06)» 編集

日々の破片

著作一覧

2010-12-05

_ WCF Data Service

最近の傾向だと思うが、社内にファイアウォールを導入して基幹システムネットワークとオフィスのネットワークを分断しているシステムに出会うことがある。

このようなシステムに既存のソリューションを適合させる事を考えると、WCF Data Serviceは相当良いところをついている。

が、何点か引っ掛かっている。

インターセプト可能なポイントが少ない事と、情報の分散だ。

とりあえず、クェリストリング指定でJSONで返す方法を調べて、属性で介入するコードが提供されていることはわかったから、それを読めば、シリアライズする方法はわかるだろう。

もう一点はキャッシュで、DataServiceクラスの唯一の仮想関数を使った介入を試すと、独自に設定したEtagが悪さをして、リクエストが40xのエラーではじかれる。介入して、リクエストオブジェクトからif-not-matchを削除してやっても、どうも与えられているのはクローンらしく、効かない。

WCFサービスを作ればそのあたりのハンドリングは簡単だろうが、データサービスの雛形生成の強力さが失われてしまう(サービスからデータサービスへリクエストするのは馬鹿げているし、かと言ってコンテキストをインポートするのも無駄だ。とすると、普通にADO.NETを使うことになってしまう)。

さて。

·HTTPモジュールを使ってjsonをサポートする例:

JSONP and URL-controlled format support for ADO.NET Data Services

結局、HTTPモジュール(ASP.NETのフィルタ)を記述するしかないのか。

·こっちの方がきれいだ。jsonpattribute

-

IDispatchMessageInspectorを実装して、フォーム認証のクッキーを確認する、アプリケーションレベルのアクセスログを行き返りで採る。リードオンリーキャッシュを実装するとかすれば良さそうだ。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え