网站开发系列之小问题解决
1.WebConfig
<configuration>
<appSettings></appSettings>
<system.web>
<compilation debug="true">
My Note: sometimes ,That debug status is true or false will cause different performance,for example,a usercontrol ,named test.ascx,
if debug status is true ,its'name is Asp.test.ascx while _ASP.test.ascx when debug is prohibited.
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
<httpHandlers>
<add path="ajax/*.ashx" verb="POST,GET" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
<authentication mode="Windows"/>
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"></customErrors>
</system.web>
<system.web>
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
</system.web>
My note:The mode attribute contains four states.
Inpro means sessions are created in the server machine's own process.
StateServer meas we can appoint a special server which is charged of managing session information.It will be applicable to distributed system. So stateConnectionString attribute is necessary .
SQLServer:Store session information in sqlserver. sqlConnectionString is necessary .
Custom :
Off:
2、说说VS2008里面的新建项目-网站(webApplication)和新建网站(website)的区别?
由于近期开发个小的功能模块,不想放在庞大的主站里面一起编译、发布,
所以采用了项目型网站的模式,但在IIS配置方面和Session共享的问题上,着实费劲了一把
现归纳几点用得到的:
(1)图标就不一样,项目网站多个C#的标记,猛的看起来像类库。右键选项是build,不是普通网站那种build web site
(2)build 以后,生成的文件不同。项目网站,所有的cs文件都编译到一个dll里面,也和类库有点像。普通网站build之后没啥不同 ,倒是发布的时候,普通网站每个cs文件发布成一个dll,项目网站发布后只有一个dll和所有的aspx.ascx之类
(3部署也容易啊,webapplication只需要复制dll 和页面文件,copy到网站里,妥了。所以适用于把一个很庞大的项目根据文件夹拆分成一个个的小的webapplication,
(4)webApplication新建的页面有三个文件,而且后台页面类包含命名空间,WebSite只有两个文件且没有默认的命名空间,区别就在于.designer.cs文件
其余的我也不知道了 ,摘了一段网上的 ,人家总结的很好啊
WebApplication 的优缺点:
(1)可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
(2)可以将网站拆分成多个项目以方便管理
(3)网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去
(4)
WebSite的优缺点:
(1)动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
(2)可以使错误的部分和使用的部分不相干扰(可以要求只有编译通过才能签入)
(3)每个页面生成一个程序集
(4)可以把一个目录当做一个WebApplication来处理,直接复制文件就可以发布,不需要项目文件
两种编程模型的互相转换:我还没看到网上说的那个直接转换的方法哦
3。 问题是IIS中的网站和虚拟目录什么关系?虚拟目录的文件夹必须是网站的子文件夹吗?网站和虚拟目录之间,虚拟目录和虚拟目录之间可以共享session吗,为什么不能共享?为什么当我把虚拟目录的文件夹放在主网站下面,并且不在IIS里设置虚拟目录的时候,就可以共享session呢?
待解决??
4。用户控件中相对路径的问题?
图片1始终显示,写法:<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/head.JPG" />
图片2在根目录不能显示,写法:<img src='../Images/head.JPG' alt="测试" />
图片3始终显示,写法:<img src='<%=ResolveUrl("../Images/head.JPG") %>' alt="测试" />
所以如果使用html控件,iframe等,使用Resolveurl的方法 转换成服务器路径,服务器控件则大可不必