自从将项目转换为VS2010后,HttpListenerRequest属性不再可用



我使用Visual Studio 2008创建了一个针对.NET 3.5的项目,该项目利用了HttpListenerRequest类。作为统计信息收集机制的一部分,类的所有属性都被写入到一个文件中。

我最近尝试将该项目从VS2008解决方案转换为VS2010解决方案,在转换过程中没有任何错误,但我一尝试构建该项目,编译器就声称找不到"HttpListenerRequest.ServiceName"one_answers"HttpListerRequest.TransportContext"。

在这两个项目中,目标框架都是.NET framework 3.5,我比较了所引用的DLL版本号,一切似乎都是一样的。

我决定检查visualstudio的两个版本中的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更新。

相关内容

  • 没有找到相关文章

最新更新