ビルドできることろまで進めてみました

Developer
Mar 14, 2011 at 2:55 PM

自分の開発環境は Win7 Pro x86。

自分は Subversion 使い慣れているので、すでにインストール済みの TortoiseSVN でプロジェクトのソースコード一式をチェックアウト(Subvresion用語の意味で)。

ソリューションを(すでにインストール済みの)VS2010 Pro で開き、リビルド。

なにやらビルドエラーが出る。
ServiceConfiguration.cscfg の設定がおかしいとのことなので、よくよく確認すると、別のディスカッションボードで正しい内容が提供されている。
当該ディスカッションボードから内容をコピぺしてビルド成功。

ビルドが成功したので実行。
すると web.config で構成エラー。
どうやらセッション状態プロバイダに Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider クラスが指定されているが、そんなクラス知らないよ、ということらしい。 

AzureTableSessionStateProvider.cs をプロジェクト中に発見、しかし仕掛かり中とのコメント。
Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider クラスはサンプルコードから入手可能だが、これをどう扱ったものか(GACに登録するのか?)考えあぐねたため、とりあえずセッションのモードを InProc に web.config に書き換えて実行(下記)。

<!--
<sessionState mode="Custom" cookieless="UseUri" customProvider="TableStorageSessionStateProvider">
<providers>
<clear/>
<add name="TableStorageSessionStateProvider" type="Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider"          applicationName="jp110311" />
</providers>
</sessionState>
-->
<sessionState mode="InProc" cookieless="UseUri"></sessionState>

これでとりあえずは動作するようになりました。

実際にガラケーでの確認はしてませんが、とりあえず PC 上の Google Chrome にて、アカウント作成やログインができることを確認できました。

Coordinator
Mar 15, 2011 at 1:57 AM

プロジェクト中にあれば bin にあるから GAC インストールとか不要のはずなんですけどね。

TableStorageSessionStateProviderは以下サンプルからの複製が入ってます。

http://jp110311.codeplex.com/SourceControl/changeset/view/7255#91090

 

Coordinator
Mar 15, 2011 at 2:19 AM

Azureストレージへの接続設定に誤りがありました。

Issue起こして修正を入れました

http://jp110311.codeplex.com/workitem/225

Change set 7257 で修正しました。

Developer
Mar 16, 2011 at 3:12 PM

遅ればせながら、本日開始しました。

(1)コード取得

(2)Cscfg の書き換え

(3)ビルド --> 以下のエラー

=====   

MvcWebRole1 -> C:\public\jp110311\jp110311\MvcWebRole1\bin\MvcWebRole1.dll

エラー: オブジェクト参照がオブジェクト インスタンスに設定されていません。

=====

各プロジェクト単体はビルド成功しており、プロジェクト jp110311 における WebRole への参照あたりがうまくいっていない感じがしたので、ソリューション中に新しいクラウドプロジェクトを作成(Roleは空で)し、スタートアッププロジェクトに。コンフィギュレーション値をコピーし、Role として MvcWebRole1 を追加 --> ビルド、実行(初期ページの表示)成功。

ここで、再び jp110311 をスタートアッププロジェクトにし、デバッグ実行したところ、ビルド、実行(初期ページの表示)に成功。

(バッドノウハウ的な回避でスイマセン、、、)

 

しかし、そこから、「ログオン」「ホーム」「このサイトについて」のリンクをクリックすると、以下のエラー。


値を Null にすることはできません。
パラメーター名: InString

説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.ArgumentNullException: 値を Null にすることはできません。
パラメーター名: InString

ソース エラー:

 

768:               {

769:                   // Read Items, StaticObjects, and Timeout from the file

770:                   byte[] items = Convert.FromBase64String(reader.ReadLine());

771:                   byte[] statics = Convert.FromBase64String(reader.ReadLine());

772:                   int timeout = session.Timeout;

 

ということで、まだまともな実行までいたっていませんが、もし上記エラーについて状況わかる方いらっしゃいましたら、ご教授ください。 

Developer
Mar 16, 2011 at 3:21 PM
Edited Mar 16, 2011 at 3:49 PM


jsakamoto さんと同じく Web.cofig の設定で、エラー回避できました。

アカウント作成、ログインを確認しました。もう少し動かしてみます。