Md.*_*man 8 .net c# wcf amazon amazon-product-api
我正在尝试制作一个小型应用程序,可以通过它的ISBN搜索亚马逊的书.我是亚马逊网络服务的新手.
我关注以下链接:
http://flyingpies.wordpress.com/2009/08/01/17/
http://flyingpies.wordpress.com/2009/08/13/signing-amazon-product-advertising-api-cwcf-part-2/
我的代码是:
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
binding.MaxReceivedMessageSize = int.MaxValue;
AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(
binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService"));
amazonClient.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(AccessKeyId, SecretAccessKey));
ItemLookup lookup = new ItemLookup();
ItemLookupRequest request = new ItemLookupRequest();
request.IdType = ItemLookupRequestIdType.ISBN;
request.ItemId = new[] {"9780297870470"};
request.ResponseGroup = new[] { "OfferSummary" };
request.SearchIndex = "All";
request.IdTypeSpecified = true;
lookup.Request = new ItemLookupRequest[] { request };
lookup.AWSAccessKeyId = AccessKeyId;
lookup.AssociateTag = "wwwyaodaromane-90";
var response = amazonClient.ItemLookup(lookup);
Run Code Online (Sandbox Code Playgroud)
当我尝试发送请求时,我得到了这个例外
序列化消息体ItemSearchRequest1时出错:'无法生成临时类(结果= 1).
错误CS0030:无法将类型'Simple.Amazon.ECS.ImageSet []'转换为'Simple.Amazon.ECS.ImageSet'
内部例外是:
{"无法生成临时类(结果= 1).\ r \n\r \nNRror CS0030:无法将类型'Simple.Amazon.ECS.ImageSet []'转换为'Simple.Amazon.ECS.ImageSet'\ r\_ nerror CS0029:无法将类型'Simple.Amazon.ECS.ImageSet'隐式转换为'Simple.Amazon.ECS.ImageSet []'\ r \n"}
我不明白为什么我得到这个.我做错了什么?
Yar*_*veh 13
这通常是WCF代理生成中的错误.请参阅此处了解一些详细信息和解决方法.
取自评论链接:
这些是截至2012年1月31日在Visual Studio for .Net客户端修复此问题的步骤:
1)单击解决方案资源管理器中包含亚马逊服务参考的项目的"显示所有文件"按钮.
2)展开引用并在编辑器中打开AWSECommerceService.wsdl文件
3)在第584行,将"maxOccurs"改为"1".
4)保存AWSECommerceService.wsdl文件
5)右键单击Reference.svcmap并单击"运行自定义工具"
6)展开Reference.svcmap并打开Reference.cs或Reference.vb
7)使用窗口顶部的下拉列表导航到AmazonAPI.your namespace.Item.
8)导航到ImageSets属性并确认其声明如下所示:
public ImageSet[] ImageSets {
Run Code Online (Sandbox Code Playgroud)
而不是这样的
public ImageSet[][] ImageSets {
Run Code Online (Sandbox Code Playgroud)
9)重建你的项目
归档时间: |
|
查看次数: |
3429 次 |
最近记录: |