我使用Visual 2008创建了一个针对.NET 3.5的项目,该项目使用了HttpListenerRequest类。作为统计信息收集机制的一部分,类的所有属性都被写入文件。
最近,我试图将项目从VS2008解决方案转换为VS2010解决方案,在转换过程中没有任何错误,但一旦我试图构建该项目,编译器就声称它找不到"HttpListenerRequest.ServiceName“和"HttpListenerRequest.TransportContext”。
在这两个项目中,目标框架是.NET Framework3.5,我已经比较了所引用的DLL版本号,所有内容似乎都是相同的。
我决定检查visual的两个版本中的HttpListenerRequest类元数据,以发现虽然2010年没有像预期的那样引用ServiceName和TransportContext,但VS2008显示了这两个属性,但也没有摘要描述。
然后,我在VS2010中创建了一个针对VS2010 4的项目,它允许我引用上述两个属性。
我真的需要继续针对.NET 3.5,您知道吗?我可以在不改变代码以排除这么多功能的情况下使它工作吗?
编辑:请求,这是代码:
void Log(System.Net.HttpListenerContext context)
{
string line =
DateTime.Now.ToString() + "|" +
context.Request.HttpMethod + "|" +
context.Request.RawUrl + "|" +
context.Request.Url.ToString() + "|" +
context.Request.RemoteEndPoint.ToString() + "|" +
(context.Request.UrlReferrer == null ? "None" : context.Request.UrlReferrer.ToString()) + "|" +
(context.Request.ServiceName == null ? "None" : context.Request.ServiceName) + "|" + // Error Here on ServiceName
context.Request.UserHostName + "|" +
context.Request.UserAgent + "|" +
context.Request.TransportContext.ToString() + "|" + // Error here on TransportContext
context.Request.ProtocolVersion + "|" +
context.Request.ContentLength64.ToString();
WriteToFile(line);
}发布于 2012-11-15 13:40:53
所以我想明白了:
Visual的两个版本都只为我提供了System.dll的以下版本信息: v2.0.50727
但是,在转到windows目录并检查这些文件之后,就会发现版本上的差异。不包含属性的版本是v2.0.50727.3053,而版本v2.0.50727.3634包含它们。
我认为问题在于,自从安装Windows以来,我已经禁用了Windows更新。
https://stackoverflow.com/questions/13397941
复制相似问题