我有一個應用程序被託管在某處(webhostingworld.net),我有一個困境。我有一個工具(簡單的exe文件,在.net 4 anycpu中)執行一些離線的東西,它是由'Parallel Plesk Panel 11.0.9'作爲'預定任務'啓動的。一切都很好,直到我添加了一個通用的方法。c#通用方法崩潰
- 基本上,它只是一個從數據庫讀取json字符串並將其返回的虛擬方法;
- 該進程剛剛死亡,沒有發生異常 - 我必須將日誌記錄從一個地方放到另一個地方,最後一件事是在調用此方法之前進行日誌記錄以及其中的第一件事。在調用這個方法之前的日誌記錄就在那裏,方法內部沒有;
- 方法聲明如下:
public T Get<T>(string id);
- 我接觸他們提出一些反饋 - 在系統日誌,也許他們看到的東西,但我懷疑他們會帶來一些光;
- 在我的電腦上工作正常(不是總是這樣嗎?);
- 試圖在所有CPU的口味編譯:86,64,anyCPU並具有相同的行爲...
我跑出ideeas的。我總是可以嘗試使用通用對象(也許這可能是一個更好的代碼尺寸pov的ideea - 但這是另一個主題)...但它很令人沮喪,因爲我無法找到一個很好的理由,爲什麼會發生這種情況......那麼,有關發生什麼事情的任何想法?
謝謝!
更新:的代碼看起來是這樣的:
public T Get<T>(string id)
{
Log.Debug("mary still has that little lamb");
string jsonString = GetASimpleStringFromDatabase(id); // id has values like "ID", "TEMPPATH", "MAIL", etc;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
{
return ser.ReadObject(ms);
}
}
和呼叫看起來是這樣的:
Log.Debug("Let's check if Mary has that little lamb");
MyClass c = deserializer.Get<MyClass>(stuff);
出現第一個記錄的語句( 「讓我們來看看」),第二個(「還有」)沒有。 .net框架與我的機器上的相同(至少在版本方面)。我想知道是否有一些我需要檢查的標誌,有些東西...
更新:我很抱歉,但支持人員的反應非常慢。我對此沒有答案。我將離開它,沒有「模板」。 :-(
你可以發佈'公共T代碼(字符串id)'和調用它的代碼行嗎? –
安裝在機器應用程序上的.Net框架正在運行?泛型不支持框架1.0/1.1 – jags
這是一個.NET 4 - 簡單的普通exe文件.net 4 anycpu' –