2008年11月01日

Silverlightのサイト構築時の注意点

IIS6でSilverlightのサイトを構築するときに、正しくサイトの設定をしておかないと
次のようなエラーが発生するようです。
エラーをハンドリングしてなかったんで、こんなメッセージになりました。

20081101error.jpg

エラーコード 2104
エラー Unhandled Error in Silverlight 2 Application
カテゴリ InitializeError

解決方法は他のサイトに掲載されていました。
こちら


一応引用しときますと、

1.コンテンツの有効期間を設定しましょう

サイトのプロパティの「HTTPヘッダー」タブを開いて、「コンテンツに有効期間を
設定する」にチェックして、有効期間を1分間にしましょう。

2.MIMEの種類とファイル拡張子を登録しましょう

MIMEの種類と拡張子を次のように設定しましょう。

拡張子 MIMEの種類
.xap    application/octet-stream
.xaml   application/xaml+xml

3.実行アクセス許可をスクリプトのみにしましょう

サイトのプロパティの「ディレクトリ」タブで実行アクセス許可をスクリプトのみにしましょう。

だそうです。
ちなみにIEだと警告が表示されたんですが、Firefoxだとなんにも表示されませんでした。

助かりました。。。
ラベル:Silverlight2
posted by しげ at 20:07| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

SliderのMouseLeftButtonDownイベントが拾えない?

タイトルのとおりです。
Sliderコントロールでマウスによる操作のイベントを拾ってメディアの再生と連動させようと
考えてるんですが、イベントを拾えません。。。

検索してみると同じ事象でひっかかっている人がいるみたいですが、解決に至ってない様子。


ま、まさかMSDNの誤植ってことは無いよな・・・。
(VisualStudioのIntelliSenseまで間違ってるわけないし)

んー、なんででしょう??
ラベル:Silverlight2
posted by しげ at 00:44| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

2008年10月21日

Silverlight2でWebService(SOAP)

一日分の仕事が終わってからの予定が仕事中にもやらないと間に合わなくなってきて、
仕事後回しでSilverlightのお勉強。

SilverlightからWebServiceを呼び出してデータを取得するテストをしました。
btnGetがクリックされたらWebServiceを呼び出す部分です。

private void btnGet_Click(object sender, RoutedEventArgs e)
{

    WebServiceTEST.Service1SoapClient wc = new WebServiceTEST.Service1SoapClient();
    wc.getDataCompleted += new EventHandler<WebServiceTEST.getDataCompletedEventArgs>(wc_getDataCompleted);

    wc.getDataAsync();

}

private void wc_getDataCompleted(object sender, WebServiceTEST.getDataCompletedEventArgs e)
{
    string result = e.Result;
}

こんな感じで、WebServiceは非同期で呼び出します。
これだけで済むなんて便利ですねぇ・・・。

で、テストをしてみたんですが、WebServiceの呼び出しでCommunicationExceptionが
発生してしまいました。
エラー内容は

URI 'http://localhost:1324/Service1.asmx' への要求試行時にエラーが発生しました。これは、正しいクロスドメイン ポリシーを適用せずにクロスドメインでサービスにアクセスしようとしたことか、SOAP サービスには適していないポリシーが原因で発生した可能性があります。サービスの所有者に問い合わせて、クロスドメイン ポリシー ファイルを公開し、SOAP 関連の HTTP ヘッダーが送信されるようにしてもらう必要がある可能性もあります。詳細については、内部例外を参照してください。

だそうです。
Silverlight側のURLがhttp://localhost:1234/なのでドメインが一致しないという判断みたいです。
(ポート番号は例)

これがクロスドメインポリシーのエラーか・・・とおもい、WebService側にclientaccesspolicy.xmlを
作成して、MSDNに書かれていたとおり

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</cross-domain-access>
</access-policy>


※pathをpath="/api"からpath="/"に変更。

しかし、事象は変わりません。

色々調べてるうちに海外のサイトにたどりつき、XMLを比較してみて<policy>タグがないことに
気づきました。30分近く悩んだのに。。。。

良く見れば、<policy>タグがあるものとないものがあるし。


というわけで、ご注意ください。

よくよくもっと調べたら同じ事象ではまってた人を発見。
TrackBackさせてもらいます。

posted by しげ at 16:37| Comment(0) | TrackBack(1) | Silverlight | このブログの読者になる | 更新情報をチェックする

2008年10月20日

役に立つ情報は・・・

いろいろ国内の情報(=日本語でかかれた情報)を探し回ってみましたが結局よくわからず。
VolumeのコントロールもMediaElementの情報をSliderのValueにBindingすることが
できるような情報を見付けたけど、方法がわからず。

結局、いきつくところは、本家のサイトです。


チュートリアルのサイトのまとめがあったり、サンプルコードがDLできたり、疑問が解決
できそうです。
とくにシークバーをもつ動画プレーヤーのサンプルコードがるみたいなんで、DLして
コードを読んでみます。
ラベル:Silverlight
posted by しげ at 01:08| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

2008年10月19日

格闘中・・・

睡眠時間削ってSilverlight2と格闘中です。

Visual Studio 2008があったんで、Visual Studio 2008 用 Silverlight Tools を
インストールして開発してます。
C#でかけて、Visual Studioでデバッグできるというのがありがたいです。
ブレークポイントとか、クイックウォッチとか使えるし。

ただ、画面の作成はコントロールをペタペタのっけて・・・・ではなく、ゴリゴリとXMLライクな
XAMLのソース書かなきゃいけません。面倒くさいなぁ。
Expression Blend2.5をインストールすればいいんだろうけど、とりあえずはVisual Studio
で我慢してがんばってみます。


で、ニコニコ風動画プレーヤーの作成ですが、XML形式で取得したデータをDataGridに表示して、
動画再生中に追加されたコメントをDataGridに追加する(Gridに1行追加する方法がわからなかった
んで、1行追加したXMLを再度DataGridにBindしてる)こと、動画のVolumeをSliderコントロールで
動的に変更させることはできました。


あとは、

・動画のシークバーを作る
・コメントを画面に表示する

って部分ができればアウトラインは完成かな。


後者はコメント取得時にTimelineMarkerで動的にMarkerを埋め込んで、イベントが発生したら
コメントを表示してやればできそう。

しかし、前者がどうしたらいいのやら。
動画再生時間をあらかじめ取得して、アニメーションとしてSliderを0:00:00から動画再生時間まで
動かして、ValueChangedイベントが発生したら、valueを元に再生位置を取得してそこから
再度再生しなおし・・・って形になるのかなぁ・・・???
参考になるソースが全く見つからないってのは辛いですー。
まともなものができたら、部分的にソースのっけます。


・・・あー眠い。
posted by しげ at 02:50| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする

2008年10月16日

Silverlight勉強中・・・

ある日の午後、社外で作業中の上司からの電話・・・


上 : 手、空いてます??
私 : 今??
上 : 動画配信サイト構築して。

私 : Streamingサイト?
上 : 利用者が自由にコメントつけられるようなの。


私 : ニコニコを作れと???
上 : ほかにも・・・とか・・・とか要望があるんで、どこまでできるか教えて。



・・・と、挑戦状を受け取ってしまいました。


普通にFlashで作ることを考えましたが、FlashもActionScriptは超初心者。
社内にあるFlashのソフトもだいぶ前のバージョンのもの。
Playerを作成するのは結構難しそう・・・・。

というわけで、正式リリースされて間もない(話があったのはリリース当日だ・・・)
Silverlight2でできるかどうか探ることにしました。

いろいろサイトをめぐってみましたがココ↓が一番判りやすいです。


http://www.chicasharp.net/ScottGu/result2.aspx?target=Silverlight+%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB+%E3%83%91%E3%83%BC%E3%83%88+1%3a+Silverlight+2+%E3%81%A8+VS+2008%E3%81%A7%22Hello+World%22%E3%82%92%E4%BD%9C%E6%88%90


さて、どこまでできるのやら。。。

2008/10/16 12:00 補記

ん、Silverlight2 Beta 1のコードのような気がする。
正式リリースまでに廃止された機能(WaterMarkedTextBox)とかあるし。
コードの参照は翻訳元の英文サイトのほうが良いかも。。。

http://weblogs.asp.net/scottgu/pages/silverlight-2-end-to-end-tutorial-building-a-digg-search-client.aspx
ラベル:Silverlight
posted by しげ at 10:55| Comment(0) | TrackBack(0) | Silverlight | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。