2012-06-21 45 views
0

我們的.NET 4應用程序使用外部.NET webservice,並且在調試模式下一切正常,但在發佈模式下,我們遇到了序列化錯誤。經檢查發現被送到服務的SOAP請求,並發現了一些不同的元素調試和發佈模式中的序列化有所不同

SOAP元素在調試模式下

 <Key>pswhistory</Key> 
     <Value xsi:type="ArrayOfString"> 
      <string>a</string> 
      <string>B</string> 
     </Value> 

SOAP元素之一,在釋放模式

 <Key>pswhistory</Key> 
     <Value xmlns:q1="http://tempuri.org/" xsi:type="q1:ArrayOfString"> 
      <q1:string>a</q1:string> 
      <q1:string>B</q1:string> 
     </Value> 

有人可以解釋這一點XMLSerializer的行爲?

謝謝

回答

1

@Phil - 你說得對。消息在發佈模式下生成時,soap消息中的命名空間不正確。

問題是由於自動生成的序列化程序集。通過關閉項目屬性中的「生成序列化程序集」選項,問題得到解決。當此選項打開時,編譯器使用sgen.exe爲程序集中的所有類型生成序列化程序集,這會增加應用程序的啓動時間。出於某種原因,生成的組件指的是錯誤的組裝。請參考下面的油墨瞭解更多詳情

http://msdn.microsoft.com/en-us/library/bk3w6240(VS.80).aspx

Serialization Assembly. Is it needed or not?

+0

更改「生成序列化大會」從自動爲關固定,我有一個問題,謝謝! – JLWarlow

0

聽起來像一個需要顯式聲明的名稱空間。你可以附上你試圖序列化的代碼/業務對象的樣本嗎?

相關問題