繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM