HttpWebrequest失败,内部exceptionvalidation失败,因为远程方已关闭传输流

使用C#,。Net 4.5,我试图通过远程服务器上的HttpWebRequest发送Web请求。 请参阅下面的代码。 我尝试了一些论坛建议的大部分解决方案,但我总是遇到同样的错误。 请参阅下面的堆栈跟踪。 调用request.GetReponse()方法时抛出错误。 其他信息,基本上,我正在尝试调用安装在远程服务器上的vmware的vCenter组件的reloadSslCertificatefunction。 目前,该错误仅发生在vCenter 5.5上。 它在5.1及以下版本中运行良好。 var uri = String.Format(“https://{0}/some_url”, serverName); var request = (HttpWebRequest)WebRequest.Create(uri); request.KeepAlive = true; request.Accept = “text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”; request.Headers.Set(HttpRequestHeader.AcceptLanguage, “en-US,en;q=0.8”); request.Credentials = credential; request.CookieContainer = cookieContainer; var response = request.GetResponse(); exception:System.Net.WebException:基础连接已关闭:发送时发生意外错误。 —> System.IO.IOException:身份validation失败,因为远程方已关闭传输流。 System.Net.Security.SslState.Ss上的System.Net.Security.SslState.StartReadFrame(Byte []缓冲区,Int32 readBytes,AsyncProtocolRequest asyncRequest)中的System.Net.Security.SslState.StartReceiveBlob(Byte []缓冲区,AsyncProtocolRequest asyncRequest)。 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,Byte [] buffer,AsyncProtocolRequest)上的System.Net.Security.SslState.StartSendBlob(Byte []传入,Int32计数,AsyncProtocolRequest asyncRequest)中的CheckCompletionBeforeNextReceive(ProtocolToken消息,AsyncProtocolRequest asyncRequest) asyncRequest)在System.Net.Se.SlsStream.CallProcessAuthentication(对象状态)的System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)处于System.Threading.ExecutionContext.RunInternal(ExecutionContext […]

如何在C#中的Dispose()方法中配置托管资源?

我知道Dispose()是针对非托管资源的,当不再需要资源时,应该在不等待垃圾收集器完成对象的情况下处理资源。 但是,在处理对象时,它会抑制垃圾收集器的完成(GC.SuppressFinalize(this);在下面的代码中)。 这意味着如果对象包含托管资源,我们也必须处理它,因为垃圾收集器不会清理它。 在下面的示例代码中(来自MSDN),“Component”是一个托管资源,我们为此资源调用dispose()(component.Dispose())。 我的问题是,我们如何为作为托管资源的Component类实现此方法? 我们应该使用像Collect()这样的东西来捅垃圾收集器来清理这部分吗? 任何想法将不胜感激。 谢谢。 以下是我正在查看的代码来自MSDN: using System; using System.ComponentModel; // The following example demonstrates how to create // a resource class that implements the IDisposable interface // and the IDisposable.Dispose method. public class DisposeExample { // A base class that implements IDisposable. // By implementing IDisposable, you are announcing that // […]

如何使用正则表达式在特定字符串/字符后找到字符串

我对正则表达式(c#)绝望,所以我将不胜感激: Basicaly我需要解析一个文本,我需要在文本中找到以下信息: 示范文本: KeywordB:*** TextToFind *其余部分不相关,但** KeywordB: 文本ToFindB ,然后是更多文本。 我需要在某个关键字之后找到可能以“:”结尾的单词。 [UPDATE] 谢谢安德鲁和艾伦:很抱歉重新打开这个问题,但正则表达式中遗漏了一件非常重要的事情。 正如我在上一篇评论中所写的那样,作为正则表达式的一部分,是否可以有一个变量(要查找多少个单词,具体取决于关键字)? 或者:我可以为每个关键字设置不同的正则表达式(只会是一个完整的手)。 但仍然不知道如何在正则表达式中使“要寻找的词”不变

在Azure网站上保存/提取文件的位置?

我有用于运行我们数据的unit testing的Web应用程序,我想将其部署为Azure Web站点。 问题是在这个应用程序我正在下载相当大的zip文件,提取它们(~50MB,内部500个文件)并对这些文件进行一些测试 。 我应该在Azure网站上将这些大文件保存在哪里以及我应该在哪里提取它们? 在localhost上我一直在使用“Path.GetTempPath()”,但Azure网站报告此文件夹中没有空间,即使我的Azure站点总共有1000MB,大约990MB可用。 有没有办法如何使用这1000MB的文件操作? 如果无法做到这一点,我应该为提取的文件使用Azure Blob存储吗?

将两个列表与不同的对象相交

我有一个ObjA和ObjB列表如下: List List1; List List2; ObjA和ObjB都有一个公共字段,即User,我希望基于User.Id将它们相交。 class ObjA { User user; …. other properties } class ObjB { User user; …. other properties } class User { int Id; …. other props } 如何将这两个列表与Linq上的User.Id相交? 因此,我只想要用户列表。

使用iTextSharp在系统中使用字体

我想用iTextSharp写一些文字。 我正在使用这种方法: var font = BaseFont.CreateFont(BaseFont.TIMES_BOLD, BaseFont.WINANSI, BaseFont.EMBEDDED); 我的问题是:iTextSharp支持系统字体目录中的所有字体吗? 假设我在字体选择器对话框中选择了一个名为“mycoolfont”的字体。 我可以创建一个类似这样的新iTextSharp字体吗? var font = BaseFont.CreateFont(“mycoolfont”, BaseFont.WINANSI, BaseFont.EMBEDDED); overContent.SetFontAndSize(font, fontSize); 更新: 我试过var font = BaseFont.CreateFont(“Verdana”, BaseFont.WINANSI, BaseFont.EMBEDDED); 但得到错误“Verdana”不被itextsharp识别

程序集名称和版本

在组装和发布时,什么被认为是最佳实践? 我希望能够引用同一个库的多个版本 – 解决方案包含多个依赖于我们自己构建的commonutils.dll库的不同版本的项目。 由于所有依赖项都被复制到bin / debug或bin / release,尽管每个DLL文件具有不同的程序集版本号,但只存在commonutils.dll的单个副本。 我应该在程序集名称中包含版本号,以便能够引用库的多个版本,还是有另一种方式?

分析器错误消息:文件’/TestSite/Default.aspx.cs’不存在

短篇故事。 这个网站是由我的一个朋友创建的,他不知道那么多C#或asp。 并且最初是在VS 2k3中创建的。 当我将它转换为VS 2k8时,这些错误开始出现,还有其他编译问题,我设法解决(似乎发布到VS 2k8想要的设计文件) 收到错误消息: 解析为此请求提供服务所需的资源时发生错误。 请查看以下特定的解析错误详细信息并相应地修改源文件。 分析器错误消息:文件’/TestSite/Default.aspx.cs’不存在。 来源错误: 第1行: 第2行: 第3行: Defaults.aspx.cs namespace GuildStats { public partial class _Default : System.Web.UI.Page { Defaults.aspx Site.master.cs namespace GuildStats { public partial class Site : System.Web.UI.MasterPage { } } 的Site.Master

c#在运行时创建未知的generics类型

所以我有一个generics的类,它可能需要在它的方法中自己创建一个自己的实例,使用不同类型的generics,这种类型是通过relfection获得的。 这很重要,因为这个Repository将T映射到数据库表[这是我正在编写的ORMish],如果代表T的类有一个代表另一个表的集合,我需要能够实例化并将其传递给存储库[ala Inception ]。 我提供的方法是为了让它更容易看到问题。 private PropertiesAttributesAndRelatedClasses GetPropertyAndAttributesCollection() { // Returns a List of PropertyAndAttributes var type = typeof(T); //For type T return an array of PropertyInfo PropertiesAttributesAndRelatedClasses PAA = new PropertiesAttributesAndRelatedClasses(); //Get our container ready PropertyAndAttributes _paa; foreach (PropertyInfo Property in type.GetProperties()) //Let’s loop through all the properties. { _paa = new PropertyAndAttributes(); //Create […]

将Keith Hill的PowerShell Get-Clipboard和Set-Clipboard转换为PSM1脚本

我想将Keith Hill的Get-Clipboard和Set-Clipboard的C#实现转换为纯PowerShell作为.PSM1文件。 有没有办法在PowerShell中启动STA线程,就像他在使用剪贴板时在Cmdlet中一样? 博客文章 代码