.net程序在本地正常,部署到服务器后出错:object reference not set to an instance
很明显,是哪里返回的空值,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="10">
<ItemLookupResponse>
<OperationRequest>
<HTTPHeaders>
<Header Name="UserAgent" Value="Mozilla/40 (compatible; MSIE 80; Windows NT 61; WOW64; Trident/40; SLCC2; NET CLR 2050727; NET CLR 3530729; NET CLR 3030729; Media Center PC 60; InfoPath3; NET40C; NET40E"/>
</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>00091180000000000</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>
先把网站用vs发布
然后打开iis
做个网站或虚拟目录
把主目录改成网站文件夹
把iis的aspnet版本设好
权限之类的都设下
基本上就可以用了
在默认网站属性的常规属性中选择配置--然后单击调试选项卡--起用那里的两个ASP和ASPNET的调试环境就可以了
其他配置我就不说了你应该知道如果不知道的话我下面提供了一个详细的调试环境文章以供参考
大家知道,Microsoft为了更好地预防恶意用户和攻击者的攻击,在默认情况下,没有将
IIS60
安装到
Windows
Server
2003
家族的成员上。而且,当我们最初安装
IIS60
时,该服务在高度安全和"锁定"模式下安装。在默认情况下,IIS60
只为静态内容提供服务即,诸如
ASP、ASPNET、在服务器端的包含文件、WebDAV
发布和
FrontPage
Server
Extensions
功能只有在启用时才工作。在windows
2003
IIS
60中安装部署ASPnet环境,我们首先要了解一下IIS60
新的特点,在windows
2003
Server下如何安装IIS60,在IIS60的配合下我们如何来安装和部署ASPnet环境,以及它们之间关系,下面的内容将给大家一个解答。
1、使用"配置您的服务器向导"安装
IIS60
1)从"开始"菜单,单击"管理您的服务器"。
2)在"管理您的服务器角色"下,单击"添加或删除角色"。
3)阅读"配置您的服务器向导"中的预备步骤,然后单击"下一步"。
4)在"服务器角色"下,单击"应用程序服务器
(IIS,ASPNET)",然后单击"下一步"。
5)阅读概要信息,然后单击"下一步"。
6)单击"完成"。
2、使用控制面板安装
IIS、添加组件或删除组件
1)从"开始"菜单,单击"控制面板"。
2)双击"添加或删除程序"。
3)单击"添加/删除
Windows
组件"。
4)在"组件"列表框中,单击"应用程序服务器"。
5)单击"详细信息"。
6)单击"Internet
信息服务管理器"。
7)单击"详细信息"以查看
IIS
可选组件的列表。
8)选择要安装的所有可选组件。
9)单击"确定",直到返回到"Windows
组件向导"。
10)单击"下一步",然后完成"Windows
组件向导"。
三、在Windows
2003
Server
安装
ASPNET
Windows
Server
2003
家族利用
ASPNET
和
IIS
集成改善了开发人员体验。ASPNET
识别大多数
ASP
代码,同时为创建可作为
Microsoft
NET
Framework
的一部分工作的企业级
Web
应用程序提供更多的功能。使用ASPNET
允许我们充分利用公共语言运行库的功能,如类型安全、继承、语言互操作性和版本控制。IIS
60
还为最新的
Web
标准,包括
XML、简单对象访问协议
(SOAP)
和
Internet
协议版本
60
(IPv60),提供支持。
ASPNET
是一个统一的
Web
开发平台,它提供开发人员创建企业级
Web
应用程序所需的服务。尽管
ASPNET
的语法基本上与
ASP
兼容,但是它还提供了一个新的编程模型和基础结构以提高应用程序的安全性、缩放性和稳定性。通过逐渐向现有的
ASP
应用程序增加
ASPNET
功能,我们可以自由地使其增大。ASPNET
是一个编译的、基于
NET
的环境;我们可以用任何
NET
兼容的语言(包括
Microsoft
Visual
BasicNET,Microsoft
Visual
C#
和
Microsoft
JScript
NET)创作应用程序。另外,整个
Microsoft
NET
Framework
可用于任何
ASPNET
应用程序。开发人员可以很容易地从这些技术受益,这些技术包括管理的公共语言运行库环境、类型安全、继承等。
ASPNET的优点如下:
1)可管理性:
ASPNET
使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和
Web
应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。配置文件的任何变化都可以自动
查看原帖>>
NET是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。对技术人员,想真正了解什么是NET,必须先了解NET技术出现的原因和它想解决的问题,必须先了解为什么他们需要XML,Web Services 和 SOA。技术人员一般将微软看成一个平台厂商。微软搭建技术平台,而技术人员在这个技术平台之上创建应用系统。从这个角度,NET也可以如下来定义:NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个NET应用是一个运行于NET Framework之上的应用程序。(更精确的说,一个NET应用是一个使用NET Framework类库来编写,并运行于公共语言运行时Common Language Runtime之上的应用程序。)如果一个应用程序跟NET Framework无关,它就不能叫做NET程序。比如,仅仅使用了XML并不就是NET应用,仅仅使用SOAP SDK调用一个Web Service也不是NET应用。NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
1、服务器安装IIS
2、安装framework
3、注册ASPNET到IIS 如果是framework20的话
\WINDOWS\MicrosoftNET\Framework\v2050727\aspnet_regiisexe -r
4、把你的程序拷到服务器上,并创建虚拟目录
网站模板库 » .net程序在本地正常,部署到服务器后出错:object reference not set to an instance
0条评论