locked
DOMやスクリプトブリッジを使ったSilverlightアプリケーションのデバッグについて RRS feed

  • 質問

  •  こちらには度々お世話になっております。

     質問含め,クライアント/サーバー通信を行うようなソリューションのデバッグ方法についてご意見を仰ぎたいのです。

    端的に申し上げますと,SilverlightアプリケーションでDOMやスクリプトブリッジを利用している場合,どうやって分離コードのデバッグ

    いるのかお尋ねしたいのです。環境は IDE;VS2010, OS;VISTA HomeBasic です。

     普通,Silverlightアプリケーションの構成では,

    ソリューション(2プロジェクト)

     -SilverlightApp

     -SilverlightApp.Web

    となっており,

    SilverlightApp上に書いた分離コードをデバッグする時はシングルスタートアップを"SilverlightApp"にしてあげないと,

    「ブレークポイントがヒットしない」とIDEに怒られます。実際,ヒットしませんでした。

     私のプログラムではクライアント側からsilverlight経由で,ホストしているサーバーにファイルをアップロードするために

    "SilverlightApp.Web"にDomainServiceを利用したFileUploadDomainServiceを利用しているため,

    デバッグ時のスタートアッププロジェクトでは"SilverlightApp.Web"を指定しなくてはいけない状況です。

    というのもデバッグ時のスタートアッププロジェクトによってURLスキームが変わってしまうためです。VSの仕様なんでしょうか。

    上記例ではSilverlightApp→file://~~, SilverlightApp.Web→http://~~ といった具合に,です。

     とりあえず,ブラウザ外実行だとスタートアッププロジェクトを"~~.Web"にしても正常にブレークポイントがヒットする

    という記事を見かけたので,実践してみるのですがファイルアップロード時に”DOM/スクリプトブリッジは無効になっています。”

    というエラーで止まってしまいます。(調べてみると有効化できないみたいですね。セキュリティ上仕方ないのでしょうか。)

     IISサーバーでデバッグするというのも考えたのですが,自身のOSの都合でそれも難しそうです。

     デバッグでブレークポイントにヒットさせるためには"~~App"のプロジェクトで動かさなければいけないが,プログラムが動くためには

    "~~.Web"プロジェクトで動かさなければいけない,そんな板挟み状態になっています。

     書いている当の本人が一番混乱してしまって大変読みづらい文章で恐縮なのですが,

    なんとか上記のような問題点をクリアしてデバッグする方法はないのでしょうか。

    恐れ入りますが,よろしくお願いいたします。




    • 編集済み yo_gawa 2012年7月9日 12:29
    2012年7月9日 12:25

回答

  • 自己解決です。少々邪道ではありますが,SilverlightApp.web側のソースコードを以下のようにしてブラウザ外実行に対応させ,

    デバッグ作業を行うこととしました。

    HtmlPage.Document.DocumentUri

    でサーバー側のUriを指定していたのですが,

    WebClient

    クラスを用いて似たような操作を行うことでデバッグを継続できるようになりました。

    いまいち理解が甘いのでこのようなやり口でいいのか不明ですが,とりあえずはこの方法で

    行こうと思います。

    • 回答としてマーク yo_gawa 2012年7月11日 11:20
    • 回答としてマークされていない yo_gawa 2012年7月11日 11:20
    • 回答としてマーク yo_gawa 2012年7月11日 11:20
    2012年7月11日 11:19