.NET平台三层应用程序框架搭建(二)
五、IIS寄宿
1、在解决方案资源管理器中,鼠标右击解决方案“MySolution“,选择:添加→新建网站→WCF服务,出现如下窗体:
点击“确定”按钮,创建完毕。界面如下所示:
2、删除自动生成的“IService.cs”和“Service.cs”。
3、鼠标右击网站项目,选择“添加引用”,出现如下窗体:
选择“服务层”类库,确定即可。目前网站项目的结构如下:
4、双击“Service.svc”打开该文件进行修改,修改后的文件如下所示:
<%@ ServiceHost Language="C#" Debug="true" Service="服务层.MySolutionServices" %>
5、鼠标右击“网站项目”中的“Web.config”文件,选择“编辑WCF配置”,出现如下窗体:
点击“Name”后的“…”按钮,出现如下窗体:
单击“打开”按钮即可。
点击“终结点”下的第一个“空名称”,出现如下窗体:
点击“Contract”后的“…”按钮,出现如下窗体:
点击“打开”按钮即可。
点击“文件”→“保存”,然后退出即可。
6、双击“Web.config”文件,在代码中添加以下代码:
<appSettings> <!-- 映射的数据库连接字符串 --> <add key="MySolution" value="Data Source=(local);Integrated security=SSPI;Initial Catalog=MySolution;"/> </appSettings>
7、右击网站项目,选择“生成网站”。
8、右击网站项目,选择“发布网站”,出现如下窗体:
点击确定即可。
9、右击网站项目中的“Service.svc”,选择“在浏览器中查看”,如果出现以下界面,就说明配置成功。
地址是:http://127.0.0.1/MySolutionWCFService/Service.svc
10、重新打开“Web.config”文件,找到如下代码处:
<system.web> <!-- 设置 compilation debug="true" ,将调试符号 插入已编译的页面中。但由于这会影响性能, 因此请只在开发过程中 将此值设置为 true。 --> <compilation debug="false"> <assemblies> <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies> </compilation>
将<compilation debug=”false”>修改为<compilation debug=”true”>
六、表示层
1、在解决方案资源管理器中,鼠标右击解决方案“MySolution”,选择:添加→新建项目→Visual C#→Windows→Windows窗体应用程序,取名为“表示层”。将“表示层”中的Form1删除,然后鼠标右击“表示层”这个项目名称,选择:添加→Windows窗体,将这个窗体取名为:frmLogin。将“frmLogin”窗体设计成如下形式:
然后双击“Program.cs”文件,将程序中的“Application.Run(new Form1());”语句修改为“Application.Run(new frmLogin());”。
2、鼠标右击“表示层”项目,选择“添加服务引用”,出现如下窗体:
在地址栏中输入地址:http://127.0.0.1/MySolutionWCFService/Service.svc
点击“前往”按钮,出现如下窗体:
将命名空间取名为“MySolutionService”,点击确定即可。这时的表示层项目结构如下:
3、打开frmLogin窗体,在窗体的Load函数中添加如下代码:
private void frmLogin_Load(object sender, EventArgs e) { MySolutionService.MySolutionServicesClient proxy = new 表示层.MySolutionService.MySolutionServicesClient(); DataSet dst = proxy.SelectUser("id,userName", "1=1", "id"); cboUser.DataSource = dst.Tables["Users"]; cboUser.DisplayMember = "userName"; cboUser.ValueMember = "id"; cboUser.SelectedIndex = -1; }
至此全部完成,将表示层设置为启动项目,应该能够读取数据库中的数据。