Tag: .net

如何将file upload到大于5 MB(大约)的Amazon S3(官方SDK)?

我正在使用最新版本的Amazon S3 SDK(1.0.14.1)来创build备份工具。 到目前为止,如果我上传的文件的大小低于5 MB,那么一切工作正常,但是当任何文件大于5 MB时,上传将失败,出现以下exception: System.Net.WebException:请求被中止:请求被取消。 —> System.IO.IOException:写入所有字节之前无法closuresstream。 在System.Net.ConnectStream.CloseInternal(布尔internalCall,布尔中止)—结束内部exception堆栈跟踪—在Amazon.S3.AmazonS3Client.ProcessRequestError(String actionName,HttpWebRequest请求,WebException我们,HttpWebResponse errorResponse,stringrequestAddr ,Amazon.S3.AmazonS3Client.Invoke [T](S3Request userRequest)在Amazon.S3.AmazonS3Client.PutObject(PutObjectRequest请求)上的WebHeaderCollection&respHdrs,typest).StoModule.UploadFile(String sourceFileName,String destinationFileName)in W: \ code \ AutoBackupTool \ BackupToolkit \ S3Module.cs:W:\ code \ AutoBackupTool \ BackupToolkit \ S3Module.cs中的BackupToolkit.S3Module.UploadFiles(String sourceDirectory)中的第88行:第108行 注 :5 MB大致是失败的边界,可以稍微低一点或者更高 我假设连接超时,并且在file upload完成之前stream正在被自动closures。 我试图find一种方法来设置一个很长的超时(但我无法在AmazonS3或AmazonS3Configfind选项)。 任何关于如何增加超时的想法(就像我可以使用的应用程序范围设置)还是与超时问题无关? 码: var s3Client = AWSClientFactory.CreateAmazonS3Client(AwsAccessKey, AwsSecretKey); var putObjectRequest = new PutObjectRequest { BucketName = […]

引用Microsoft.SqlServer.Smo.dll

我需要使用存储在Microsoft.SqlServer.Smo.dll中的服务器类我没有在通常的引用对话框中看到这个程序集。 我已经在C:/ Program Files / Microsoft SQL Server / 100 / SDK / Assemblies中find它,并尝试从那里引用,但Visual Studio引发错误“引用”C:/ Program Files / Microsoft SQL Server / 100 / SDK / Assemblies / Microsoft.SqlServer.Smo.dll'无法添加,请确保该文件是可访问的,并且它是一个有效的程序集或COM组件。 我究竟做错了什么?

Path.Combine和点符号

我正在寻找类似于Path.Combine方法,它可以帮助我正确地组合绝对path和相对path。 例如,我想要 Path.Combine(@"c:\alpha\beta", @"..\gamma"); 以Path.Combine c:\alpha\gamma而不是c:\alpha\..\gamma 。 有没有简单的方法来完成这个? 不用说,我也想要一段时间. path或多个path(例如..\..\ )正常工作。

如何在STA线程中运行一些东西?

在我的WPF应用程序中,我做了一些asynchronous通信(与服务器)。 在callback函数中,我最终从服务器的结果中创buildInkPresenter对象。 这要求正在运行的线程是STA,显然它现在不是。 因此,我得到以下例外: 无法在程序集[..]中创build'InkPresenter'实例。调用线程必须是STA,因为许多UI组件都需要这个。 目前我的asynchronous函数调用是这样的: public void SearchForFooAsync(string searchString) { var caller = new Func<string, Foo>(_patientProxy.SearchForFoo); caller.BeginInvoke(searchString, new AsyncCallback(SearchForFooCallbackMethod), null); } 我如何使callback – 这将做InkPresenter创build – 是STA? 或者在新的STA线程中调用XamlReaderparsing。 public void SearchForFooCallbackMethod(IAsyncResult ar) { var foo = GetFooFromAsyncResult(ar); var inkPresenter = XamlReader.Parse(foo.Xaml) as InkPresenter; // <!– Requires STA [..] }

从FileStream获取原始path

给定一个System.IO.FileStream对象,我怎样才能得到它提供访问文件的原始path? 例如,在下面的MyStreamHandler()函数中,我想找回创buildFileStream的文件的path: public static void Main() { string path = @"c:\temp\MyTest.txt"; FileStream fs = File.Create(path)); MyStreamHandler(fs); MyOtherStreamHandler(fs); fs.Close(); fs.Dispose(); } private static void MyStreamHandler(FileStream fs) { // Get the originating path of 'fs' } private static void MyOtherStreamHandler(FileStream fs) { }

如何正确等待,直到BackgroundWorker完成?

观察下面的一段代码: var handler = GetTheRightHandler(); var bw = new BackgroundWorker(); bw.RunWorkerCompleted += OnAsyncOperationCompleted; bw.DoWork += OnDoWorkLoadChildren; bw.RunWorkerAsync(handler); 现在假设我想等到bw完成工作。 什么是正确的方法呢? 我的解决办法是: bool finished = false; var handler = GetTheRightHandler(); var bw = new BackgroundWorker(); bw.RunWorkerCompleted += (sender, args) => { OnAsyncOperationCompleted(sender, args); finished = true; }); bw.DoWork += OnDoWorkLoadChildren; bw.RunWorkerAsync(handler); int timeout = N; while (!finished […]

如何模仿我自己的方法string.Format()?

我有一个自定义WriteLine(string)方法的对象。 像这样的东西: public void WriteLine(string text) { this.StringList.Add(text); } 用这种方法复制string.Format()的function最简单的方法是什么? 例如:我目前经常发现自己在做的是这样的: myObj.WriteLine(string.Format("Hello, {0}", name)); 如果你创build一个新的控制台应用程序,他们的WriteLine()方法的版本正是我所希望的: Console.WriteLine("Hello, {0}", name); 它们消除了调用string.Format()的需要。 以某种方式让你的方法容易接受? 或者我将不得不创build一千个方法重载? 像这样的东西: public void WriteLine() { … } public void WriteLine(string text) { … } public void WriteLine(string text, object arg0) { … } public void WriteLine(string text, object arg0, object arg1) { … } […]

Winforms:Application.Exit与Enviroment.Exit与Form.Close

以下是我们可以退出申请的方式: Enviroment.Exit(0) Application.Exit() Form.Close() 这三种方法有什么区别,什么时候使用每种方法?

解压缩来自WebClient的gzip响应

有没有一种快速的方法来解压缩与WebClient.DownloadString()方法下载的gzip响应? 对于如何使用WebClient处理gzip响应,您有什么build议吗?

如何更改.NET框架引导程序包?

我有一个C#项目,我以前有针对.NET 4.0,现在我想要的目标.NET 3.5,但我收到此警告: .NET Framework启动条件“.NET Framework 3.5”的版本与选定的.NET Framework引导程序包不匹配。 更新.NET Framework启动条件以匹配在“先决条件”对话框中select的.NET Framework的版本。 但是,当我查看Publish-> Prerequisites时,.NET框架3.5 SP1被选中。 我需要做些什么来摆脱这个警告? 没有SP1的.NET框架3.5没有checkbox,我可以不检查任何框? 我检查了启动条件,.NET框架启动条件版本已经是3.5。