2011-09-24 34 views
0

最近,我一直在使用Silverlight業務應用程序模板來讓我習慣於silverlight/wcf ria服務。我遇到了一個我不知道如何解決的奇怪問題。Asp.net配置文件屬性在Silverlight應用程序中未正確序列化

到目前爲止,我所做的所有工作都是創建一個名爲「AvatarURL」的新配置文件屬性,基本概念是從這個Avatar tutorial,並刪除了FriendlyName屬性。不同的是,我只是在用戶註冊時將AvatarURL屬性設置爲默認(〜/ Images/Default.jpg),而不是將字節數組寫入文件。所以我不會在註冊階段瀏覽文件或從網絡攝像頭或類似的東西中拉出來。

我已經對LoginStatus.xaml等進行了必要的更改,登錄後圖像不會顯示在佔位符中。我加入了LoginStatus.xaml中的'Authentication_LoggedIn'事件處理程序,出於某種原因,用戶的AvatarURL屬性只是部分值。如果數據庫中的值爲:「http:// localhost:52878/Images/Default.jpg」。當我執行這個步驟時,我得到的值是:「http:// localhost:528」。

我有雙重檢查數據庫值,並確保它們是正確的。如果我手動輸入XAML圖像的源值(http:// localhost:52878/Images/Default.jpg),它將顯示圖像沒有問題。這似乎是Silverlight應用程序和asp.net網站項目之間的溝通問題。由於事實上我只對解決方案做了微小的改動,並且沒有編寫將這兩個項目連接在一起的代碼,所以我不知道在哪裏尋找解決方案,任何人都有任何想法?

如果需要,我可以發佈一些代碼,但它與默認業務模板沒有多大區別。

在此先感謝。

回答

0

由於保存的條目(http:// localhost:528)長度恰好爲20個字符,並且數據庫中文本值的公共默認長度爲20個字符,所以我猜這個大小限制實際上是在您的數據庫表中,輸入的值被截斷。

請檢查數據庫模式,並讓我知道情況並非如此。

+0

配置文件屬性的列由aspnet_regsql.exe應用程序生成。它表示數據類型爲ntext,不可編輯的「大小」表示6000.另外,當我使用解決方案資源管理器查看錶數據時,整個URL存在於列 – SilverX

+0

噢查看PropertyNames列中的值。它說AvatarURL:S:0:20​​,乍一看似乎定義了長度。如果是的話......你知道如何改變它嗎? – SilverX

+0

奇怪的是。我使用Uri類來構建URL,然後使用uri.AbsoluteUri獲取URL字符串並將其傳遞給配置文件提供程序。即使正確的值被插入到數據庫中,它也沒有記錄正確的長度。我已經轉向使用實際的字符串,它似乎工作得很好......更奇怪。 – SilverX

相關問題