如何将c#做好的asp.net网站部署到iis上
将ASPNET网站部署到IIS的步骤:
打开IIS管理器,在管理器中添加一个网站。
填写网站名称,选择NET版本(选择相应的版本,是40就选40,是45就选45),选择物理路径(物理路径即为你的ASPNET网站存放的文件夹)。
填写绑定信息,如果IP地址没有选择(即全部未分配,那就是这个电脑的所有IP地址都可以访问),如果选择了特定的IP地址就只能使用选择的IP进行访问。域名端口等信息保持不变然后确定。
网站部署完成可以在IIS右侧点击浏览进行访问查看。
注意:
1、网站根目录不包含引用文件,一定要到项目的根目录。
2、在编译运行时使用的是Visual Studio自带的一个虚拟IIS服务器,和IIS服务器还是有一定差别,具体部署情况要以IIS的提示为准。
我之前做服务器端和多客户端通讯的,客户端通过TCP\IP的Socket连接服务器端。突然出现高占用CPU的情况一般是客户端退出后,线程中某个循环处于死循环的状态导致的。HTTP通讯的话我猜测应该位于处理考试请求方法里面有什么循环处于死循环了。重点排查循环。
我这主要的方法还是在调试模式,借助vs性能探查器,模拟程序运行,模拟客户端接入,断开,来排查,高耗CPU的方法位于哪里。
很明显,是哪里返回的空值,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>
vs2005是集成的开发测试环境,你不需要在服务器作为本机调试的话,不需要
服务器的软件需求要看你的net程序的需求,IIS的安装是必要的了,需要补充两个方面
第一方面
1,数据库方面,看你的Net程序使用什么类型数据库了,一般情况下,Access需要装Office的Access即可(虽然Windows有默认的,但要保证数据引擎是最新的) Sql的话SqlServer2000以上版本均可
2,看Net程序在那个版本的Net构架下开发的,一般,装最新的net framework (35)即可
3,看你的服务器是否需要解析域名,需要的话,装DNS(Windows2003 Server专业版,数据库版均可)
4,网站需要用到的第三方组件有时候需要注册一下
第二方面
1,杀毒软件及服务器防火墙
2,Server2003的补丁
3,数据还原(系统还原卡等)
4,FTP软件(文件上传,下载)
基本就这么多了,看看是否有帮助,在此之前,记得把硬盘分区转为NTFS吧
0条评论