我有一个托管在某处(webhostingworld.net)的应用程序,我有一个两难选择。我有一个工具(.net 4 anycpu 中的简单普通 exe)执行一些离线操作,它由“Parallel Plesk Panel 11.0.9”作为“计划任务”启动。一切都很顺利,直到我添加了一个通用方法。
- 基本上,它只是一个从数据库中读取 json 字符串并返回它的虚拟方法;
- 这个过程就这样结束了,没有抛出异常——我不得不把日志从一个地方放到另一个地方,我做的最后一件事是在调用这个方法和里面的第一件事之前把日志放在里面。调用这个方法之前的日志是有的,方法里面的日志是没有的;
- 方法声明如下所示:
public T Get<T>(string id);
- 我联系他们寻求一些反馈——也许他们在系统日志中看到了一些东西,但我怀疑他们会带来一些启示;
- 在我的电脑上工作正常(不总是这样吗?);
- 尝试编译所有 cpu 风格:x86、x64、anyCPU 并具有相同的行为......
我没有主意了。我总是可以尝试使用通用对象(从代码大小 pov 来看,这可能是一个更好的想法 - 但这是另一个主题)......但这非常令人沮丧,因为我无法找到发生这种情况的充分理由......那么,关于发生了什么的任何想法?
谢谢!
更新:代码如下所示:
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 框架与我机器上的框架相同(至少在版本方面)。我想知道是否有一些我需要检查的标志,某事......
更新:很抱歉,支持人员的反应很慢。我对此没有答案。我将不使用“模板”。:-(