最近SVGを勉強することになり、色々調べたら
電子国土ポータル
http://portal.cyberjapan.jp/q_and_a/index.html
日本地図をSVGで公開しているとな。
業務で営業マンがどこに行ったかなどの地図表示に利用できそう。
2012年3月7日水曜日
2012年3月6日火曜日
SVG-edit
SVG-edit
ブラウザ上で動くSVGグラフィックエディタのオープンソースが超凄いです。
次のようなインタフェースで、Chromeだとサクサク動くSVGエディタがGoogle codeにてオープンソースでダウンロード可能です。
SVGでお手軽にお絵かきしたい場合や、SVGなお絵かきサイトなんかを作るのにも活用できそう
元ネタ
http://phpspot.org/blog/archives/2010/10/svg_1.html
ブラウザ上で動くSVGグラフィックエディタのオープンソースが超凄いです。
次のようなインタフェースで、Chromeだとサクサク動くSVGエディタがGoogle codeにてオープンソースでダウンロード可能です。
SVGでお手軽にお絵かきしたい場合や、SVGなお絵かきサイトなんかを作るのにも活用できそう
元ネタ
http://phpspot.org/blog/archives/2010/10/svg_1.html
2012年3月5日月曜日
UniPaas Richアプリを複数動作させる方法
UniPaas Richアプリを複数動作させる方法
Magic.iniの
MaxConcurrentUsers = 0
上記値を変更する
MaxConcurrentRequests = 0
この値は、UniPaas ENterPriceServerの場合に使用する
Magic.iniの
MaxConcurrentUsers = 0
上記値を変更する
MaxConcurrentRequests = 0
この値は、UniPaas ENterPriceServerの場合に使用する
2012年3月3日土曜日
[HttpException (0x80004005): URL にエンコードされたフォーム データが有効ではありません。]
オブジェクトの現在の状態に問題があるため、操作は有効ではありません。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.InvalidOperationException: オブジェクトの現在の状態に問題があるため、操作は有効ではありません。
ソース エラー:
現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
スタック トレース:
[InvalidOperationException: オブジェクトの現在の状態に問題があるため、操作は有効ではありません。]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2420362
System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +58
System.Web.HttpRequest.FillInFormCollection() +159
[HttpException (0x80004005): URL にエンコードされたフォーム データが有効ではありません。]
System.Web.HttpRequest.FillInFormCollection() +217
System.Web.HttpRequest.get_Form() +104
System.Web.HttpRequest.get_Item(String key) +40
Telerik.Web.UI.RadCompression.IsAjaxRequest() +50
Telerik.Web.UI.RadCompression.Compress(HttpApplication application) +373
Telerik.Web.UI.RadCompression.PreRequestHandlerExecute(Object sender, EventArgs e) +43
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
原因としては、「MS11-100」によって、.NET Framework のいくつかの問題が解決されています。
これにより導入されたセキュリティパッチの中に、「一時的にハッシュテーブルの衝突に友なる潜在的な DoS 攻撃を軽減する」を修正するために、POSTデータの多くを含むページの PostBack に問題が生じます。
幾つかの情報から、PostBack 項目が 500 に到達すると上のようなエラーが発生するようです。
回避策は、画面上のコントロールの数を少なくするのがいいのでしょうが、実際に動いているサービスではそれは難しい事になってくる。
私も最初この問題が発生したときに、PostBack に必要なデータが多すぎるために発生しているのではないかと推測はできた。
しかし、なかなか有効な情報に辿りつけなくて...さまよっていた。考える事、1時間そうかぁ validateRequest や PostBack 時の検証のチェックをしなければ....っと思って
Page で設定を行なってみたが、やはり解決しない。
結論を書くと、正確な対応としては、上記にある通り、一画面に出るコントロールを減らすのがセキュリティ面から考えても正しいのだろう。しかし、そうも行っていられない。
web.config に、
<appsettings>
<add key="aspnet:MaxHttpCollectionKeys" value="5001" />
</appSettings>
と記述するだけで、少なくても上限だと思われる10倍の5001個のコントロールになる。
後は、環境で増やしていけばいい。
根本解決ではないけど、回避策にはなる。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.InvalidOperationException: オブジェクトの現在の状態に問題があるため、操作は有効ではありません。
ソース エラー:
現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
スタック トレース:
[InvalidOperationException: オブジェクトの現在の状態に問題があるため、操作は有効ではありません。]
System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded() +2420362
System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding) +58
System.Web.HttpRequest.FillInFormCollection() +159
[HttpException (0x80004005): URL にエンコードされたフォーム データが有効ではありません。]
System.Web.HttpRequest.FillInFormCollection() +217
System.Web.HttpRequest.get_Form() +104
System.Web.HttpRequest.get_Item(String key) +40
Telerik.Web.UI.RadCompression.IsAjaxRequest() +50
Telerik.Web.UI.RadCompression.Compress(HttpApplication application) +373
Telerik.Web.UI.RadCompression.PreRequestHandlerExecute(Object sender, EventArgs e) +43
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
原因としては、「MS11-100」によって、.NET Framework のいくつかの問題が解決されています。
これにより導入されたセキュリティパッチの中に、「一時的にハッシュテーブルの衝突に友なる潜在的な DoS 攻撃を軽減する」を修正するために、POSTデータの多くを含むページの PostBack に問題が生じます。
幾つかの情報から、PostBack 項目が 500 に到達すると上のようなエラーが発生するようです。
回避策は、画面上のコントロールの数を少なくするのがいいのでしょうが、実際に動いているサービスではそれは難しい事になってくる。
私も最初この問題が発生したときに、PostBack に必要なデータが多すぎるために発生しているのではないかと推測はできた。
しかし、なかなか有効な情報に辿りつけなくて...さまよっていた。考える事、1時間そうかぁ validateRequest や PostBack 時の検証のチェックをしなければ....っと思って
Page で設定を行なってみたが、やはり解決しない。
結論を書くと、正確な対応としては、上記にある通り、一画面に出るコントロールを減らすのがセキュリティ面から考えても正しいのだろう。しかし、そうも行っていられない。
web.config に、
<appsettings>
<add key="aspnet:MaxHttpCollectionKeys" value="5001" />
</appSettings>
と記述するだけで、少なくても上限だと思われる10倍の5001個のコントロールになる。
後は、環境で増やしていけばいい。
根本解決ではないけど、回避策にはなる。
2012年3月2日金曜日
SVGをiFrameで表示
IE6とIE8で、SVGを表示すると、画面サイズが大きい場合、画面スクロールしてくれない。
(IE9では、正常に画面スクロールしてくれる。)
SVGをXAMLに変換して表示しようとすると、XAML変換が、WPF対応になってしまう。
SilverLightでは、ちと面倒な変換が必要になった。
SilverLightで強引に、WebBrowserで表示させようかと思ったけど
表示権限が必要でうまく行かない。
htmlで、iFrameを使用したら、フレーム枠を設定出来るからいけるかもと思い、実験すると
思った通りにIE6でも、画面スクロールしてくれた。
(IE9では、正常に画面スクロールしてくれる。)
SVGをXAMLに変換して表示しようとすると、XAML変換が、WPF対応になってしまう。
SilverLightでは、ちと面倒な変換が必要になった。
SilverLightで強引に、WebBrowserで表示させようかと思ったけど
表示権限が必要でうまく行かない。
htmlで、iFrameを使用したら、フレーム枠を設定出来るからいけるかもと思い、実験すると
思った通りにIE6でも、画面スクロールしてくれた。
Visio to XAML
Visioで書いたフローをWebブラウザーで表示したいと考えていた。
VisioからSVG形式で出力できるので、コレでOKからと思ったら
IE6のAdobe SVG Viwerで画面スクロールしない。
仕方ないので、VisioからXAML形式に直接出力するToolがあった。
http://visioautomation.codeplex.com/
CodePlexで公開されていた。
VisioからSVG形式で出力できるので、コレでOKからと思ったら
IE6のAdobe SVG Viwerで画面スクロールしない。
仕方ないので、VisioからXAML形式に直接出力するToolがあった。
http://visioautomation.codeplex.com/
CodePlexで公開されていた。
登録:
投稿 (Atom)