.net程序在本地正常,部署到服务器后出错:object reference not set to an instance

 我来答
山水阿锐
推荐于2016-10-22 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
.很明显,是哪里返回的空值,null值,导致出现:
Object reference not set to an instance of an object
的错误的。
2.所以就去看了看awsGetAllProductInfo部分的代码,找找是哪里返回的null。
同时,去看了看:

not find EditorialReviews for

所对应的代码的部分,是函数
public awsEditorialReview awsGetEditorialReview(string itemAsin)

中的。
3.但是,结果去测试后发现,对于上述的B0007S5N8O,是可以正常返回对应的EditorialReviews的。
4.所以后来推测是:
之前通过正常的模式,利用HttpWebRequest和HttpWebResponse去获得一个url的html。
后来为了不阻塞UI线程,利用了BackgroundWorker去做这个事情。
以为是:
有时候,通过BackgroundWorker,利用HttpWebRequest和HttpWebResponse,所返回的html,会错乱掉。
比如正常的是:
url1获得是html1,然后url2获得是html2
但是有时候调用BackgroundWorker多次,或者是频率太高了?
会出现,访问url1但返回html2的情况,导致后续代码出错。
5.但是后来的结果证明,实际上,是由于之前的代码:
public awsImages awsGetImages(string itemAsin)

中,也是有上述的:

not find EditorialReviews for

而实际上出错的,是上面的这个awsGetImages。
对应的B0007S5N8O返回的内容中,的确没有包含对应的Images:
<?xml version="1.0"?>
<ItemLookupResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E"/>
</HTTPHeaders>
<RequestId>4878a911-d0ac-472b-9077-a3595a1773f4</RequestId>
<Arguments>
<Argument Name="Operation" Value="ItemLookup"/>
<Argument Name="Service" Value="AWSECommerceService"/>
<Argument Name="Signature" Value="Fc7pdsPwmLFafceDEbRz2WlDW69TWoPtBbLqLw7lLfg="/>
<Argument Name="AssociateTag" Value="xxx"/>
<Argument Name="Version" Value="2011-08-01"/>
<Argument Name="ItemId" Value="B0007S5N8O"/>
<Argument Name="IdType" Value="ASIN"/>
<Argument Name="AWSAccessKeyId" Value="xxx"/>
<Argument Name="Timestamp" Value="2013-06-20T04:52:21Z"/>
<Argument Name="ResponseGroup" Value="Images"/>
</Arguments>
<RequestProcessingTime>0.0091180000000000</RequestProcessingTime>
</OperationRequest>
<Items>
<Request>
<IsValid>True</IsValid>
<ItemLookupRequest>
<IdType>ASIN</IdType>
<ItemId>B0007S5N8O</ItemId>
<ResponseGroup>Images</ResponseGroup>
<VariationPage>All</VariationPage>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>B0007S5N8O</ASIN>
</Item>
</Items>
</ItemLookupResponse>
追问
那为什么本地调试程序功能都是正常的呢?部署到服务器才是这样的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式