Feeds:
文章
留言

Archive for 一月 14th, 2008

IIS 啟動時出現如下令人摸不著頭緒的錯誤訊息

Snap2

還好網路上有人[1][2]遇到類似的問題,問題發生在 IIS 的通訊埠被其他應用程式佔用,我是透過 "negies" 這套工具查出佔用該通訊埠的程式。所以,要解決這個問題有兩個辦法,一個是是先關閉佔用該通訊埠的程式。另一個是改 IIS 的通訊埠,如下圖可重新設定通訊埠

Snap1

參考資料
[1] AiCi, "IIS 無法啟動:發生意外錯誤0x8ffe2740 的原因"
[2] tohen, "IIS無法啟動:發生意外錯誤0x8ffe2740的原因"

Read Full Post »

XmlSerializer 真是與 DefaultValueAttribute 相衝,如果你的屬性加上 DefaultValueAttribute,且屬性值與 DefaultValueAttribute 指定值相等時,XmlSerializer 不會將該屬性序列化,也許他認為在反序列化時,可直接使用預設值,因此不用特別序列化。不過,如果你的檔案想要和非 .NET 程式互通時,這不就完了…..

我目前就想要完整的序列化,可是卻找不到任何屬性可以強制輸出。

[1] 提出的解法就是移除 DefaultValueAttribute, 傻眼 T_T ….

看來只能含淚斬 DefaultValueAttribute

參考資料
[1] "PRB: XML Serialization: System.Xml.XmlSerializer Does Not Serialize Default Values"

Read Full Post »

當我偷懶的想用內建的 XmlSerializer 類別將設定序列化時,居然出現如下的錯誤訊息:

無法產生暫存類別 (result=1)。
error CS0019: 無法將運算子 ‘!=’ 套用至型別 ‘uint’ 和 ‘bool’ 的運算元

而且出錯的地方就在第一行 XmlSerializer ser = new XmlSerializer(typeof(AppSettings));

真是摸不著頭緒

後來才發現我的 AppSetting 的屬性有加上 [DefaultValueAttribute(true)],可是因為這個屬性是 UInt32,可能複製的時候忘記修改預設值,所以,只要將該 Attribute 修改成 [DefaultValueAttribute(60)],就可以順利序列化… 不過錯誤訊息還真的不容易懂 @_@

Read Full Post »