Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Amazon S3 put请求(request.AddHeader)上设置过期标头时发生AppHarbor生成错误_C#_Asp.net_.net_Amazon S3_Appharbor - Fatal编程技术网

C# 在Amazon S3 put请求(request.AddHeader)上设置过期标头时发生AppHarbor生成错误

C# 在Amazon S3 put请求(request.AddHeader)上设置过期标头时发生AppHarbor生成错误,c#,asp.net,.net,amazon-s3,appharbor,C#,Asp.net,.net,Amazon S3,Appharbor,将.NETAmazonSDK添加到我的项目中,并且能够在本地服务器和服务器上毫无问题地将图像上传到AmazonS3 然后,我添加了这一行以设置上传到S3时的过期标头: request.AddHeader("Expires", DateTime.Now.AddYears(10).ToString("r")); 这在我的本地服务器上运行得很好,正确地设置了S3上的Expires头 但当我将此代码推送到AppHarbor时,会出现以下生成错误: error CS1061: 'Amazon.S3.Mo

将.NETAmazonSDK添加到我的项目中,并且能够在本地服务器和服务器上毫无问题地将图像上传到AmazonS3

然后,我添加了这一行以设置上传到S3时的过期标头:

request.AddHeader("Expires", DateTime.Now.AddYears(10).ToString("r"));
这在我的本地服务器上运行得很好,正确地设置了S3上的Expires头

但当我将此代码推送到AppHarbor时,会出现以下生成错误:

error CS1061: 'Amazon.S3.Model.PutObjectRequest' does not contain a definition for 
'AddHeader' and no extension method 'AddHeader' accepting a first argument of type 
'Amazon.S3.Model.PutObjectRequest' could be found (are you missing a using directive or 
an assembly reference?)

非常感谢你的帮助

您应该尝试下载生成输出并在本地IIS中运行,以验证引用是否有效,是否用于更正AWS SDK版本。

在我的本地IIS中似乎运行良好。有什么特别的我应该检查的吗?一定是因为您的代码在本地机器上运行的AWS SDK版本与在AppHarbor上运行的不同。我猜您已经在本地计算机上添加了1.4版本,但是您正在将版本<1.4的dll推送到AppHarbor。我可以确认AddHeader()在v1.2中不存在(只有AddHeaders())。是的,从AppHarbor返回的AWS.dll是1.0.14。不知道AppHarbor是如何做到这一点的——这个版本在我的本地机器上任何地方都不存在(两周前才第一次将v.1.4 SDK下载到我的机器上)。我会弄清楚的,然后回来。谢谢你!仍然无法确切地了解到底发生了什么-但是现在回到addHeaders()肯定是可行的。