![](/img/trans.png)
[英]Representation/Encoding error after converting project from VS2008 to Vs2010
[英]HttpListenerRequest properties no longer available since converting project to VS2010
我有一个使用Visual Studio 2008创建的,针对.NET 3.5的项目,该项目利用了HttpListenerRequest类。 作为统计信息收集机制的一部分,该类的所有属性都将写入文件。
我最近尝试将项目从VS2008解决方案转换为VS2010解决方案,并且在转换过程中完全没有错误,但是当我尝试构建项目时,编译器声称它找不到“ HttpListenerRequest.ServiceName”,并且“ HttpListenerRequest.TransportContext”。
在这两个项目中,目标框架都是.NET Framework 3.5,我已经比较了所引用的DLL版本号,并且看起来一切都相同。
我决定检查Visual Studio的两个版本中的HttpListenerRequest类元数据,以发现尽管2010年没有按预期方式引用ServiceName和TransportContext,但VS2008既显示了这两个属性,又没有摘要说明。
然后,我在VS2010中创建了一个针对.NET 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);
}
所以我想通了:
这两个版本的Visual Studio仅向我提供了System.dll的以下版本信息: v2.0.50727
但是进入Windows目录并检查文件后,存在版本差异。 不包含属性的是版本v2.0.50727.3053 ,而版本v2.0.50727.3634包含了这些属性。
我认为问题是自安装Windows以来禁用了Windows更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.