我有一个托管在某处的应用程序(webhostingworld.net),我有一个两难的境地。我有一个工具(简单的普通exe在.net 4 anycpu中)执行一些离线的东西,它由'Parallel Plesk Panel 11.0.9'作为“计划任务”启动。一切都很顺利,直到我添加了通用方法。
public T Get<T>(string id);
我用完了想法。我总是可以尝试使用通用对象(也许这可能是代码大小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框架与我的机器上的框架相同(至少与版本有关)。我想知道是否有一些我需要检查的旗帜,某事......
更新:很抱歉,但支持人员对他们的回复非常缓慢。我对此没有答案。我会在没有“模板”的情况下离开它。 : - (
答案 0 :(得分:0)
用户可能只安装了“Client”.Net 4.0运行时,并且您可能正在使用需要“完整”.Net 4.0运行时的功能。 See this了解有关差异的更多信息。
此外,您可以尝试挂钩未处理的异常事件以记录错误。桌面应用为See this,网络应用为this。
如果所有其他方法都失败了,您可以开始删除应用程序的较低层以排除通信或其他原因。 (即通过调用返回硬编码JSON字符串的模拟数据库替换数据库调用等)
答案 1 :(得分:0)
有时编译器会生成不通过验证的代码。如果发生这种情况,如果您的代码没有完全信任(可能在这种情况下),您可能会遇到类似这样的问题。通过运行PEVerify验证您的代码是否可验证。