ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

服务发布步骤

2021-09-17 21:32:53  阅读:144  来源: 互联网

标签:服务 DAL 步骤 BLL 发布 引用 True WcfService


①:在服务端,有两个类库-BLL(业务层) 和 DAL(数据层) ,一个WCF服务应用程序-WcfService,

      加粗标黑的(但Visual Studio界面为黑色,就不是加粗标黑,而是白色加粗),就是当前的启动项目。两个类库-BLL和DAL不能作为启动项目,需要把WCF服务应用程序设为启动项目。打开项目,需要检查是否把WcfService设为启动项目,

      这三个项目BLL 和 DAL,WcfService(这三层),会有相互的引用。代码的请求,页面层请求到业务逻辑层,业务逻辑层再请求到数据层。

      操作:BLL层引用DAL层  (引用-鼠标右键 添加引用-项目-DAL打钩-确定)

                WcfService层也需要引用BAL层   (引用-鼠标右键 添加引用-项目-BLL打钩-确定)

     只有BLL层引用DAL层,才可以在BLL实例化DAL

②:写 BLL业务层之前,需要引用到几个命名空间 System.Data 和 System.SqlClient,System.ServiceModel

      在业务层开启一个服务契约,引用 - 添加引用 - 程序集-搜索ServiceModel-System.ServiceModel(第一个打钩)-点击确定按钮

   

      在服务端,做一个业务逻辑处理,实际上要操控的是数据库存储过程-[dbo].[WDLogin] (关键字 ALTER PROCEDURE ) 的存储语句@type='btnLogin_Click_CheckLogin' (关键字 IF() );

     需要用到数据库的操作。在BLL,通过实例化DAL,调用DAL的方法--比如查询数据缓存,返回一条数据

     然后执行该业务层。执行之后(可以关掉),之后需要发布服务。

③:写完BLL层和DAL层,需要在WCF服务应用程序-WcfService层发布服务。

       展开WcfService,鼠标右键Web.config-编辑WCF配置-选中服务配置编辑器中的高级(展开)-服务行为(展开)-空名称-行为 常规配置 Name (给服务行为添加名字) 如 BLL

       添加名字,放开鼠标后,空名称就变为BLL  -  BLL里的第一个文件 ServiceMetadata - 默认常规是 True True Default, 把第二个True 对应的是 HttpsGetEnabled ,由True改为False

       BLL里的第二个文件 ServiceDebug - 默认为 True True False(IncludeExceptionDetailInFaults) 改为 True True True

       选中服务配置编辑器中的服务 - 新建服务 - 新建服务元素向导,点击浏览(服务类型不用填) - 弹出一个目录 - 向上一级找,找到BLL文件夹-bin文件夹-Debug-BLL dll -

      点击BLL.WDLogin 类型名称-打开按钮-回到新建服务元素向导页面-服务类型主动回填,复制类型名称(ctrl + C)-下一步(不用更改)-下一步-终结点的地址是什么-地址(A) 本地地址(一般都是) 删除http://(空白) - 下一步- Microsoft 服务配置编辑器 保留空地址 点击 是(Y)按钮-完成按钮

   

①:在服务端,有两个类库-BLL(业务层) 和 DAL(数据层) ,一个WCF服务应用程序-WcfService,

      加粗标黑的(但Visual Studio界面为黑色,就不是加粗标黑,而是白色加粗),就是当前的启动项目。两个类库-BLL和DAL不能作为启动项目,需要把WCF服务应用程序设为启动项目。打开项目,需要检查是否把WcfService设为启动项目,

      这三个项目BLL 和 DAL,WcfService(这三层),会有相互的引用。代码的请求,页面层请求到业务逻辑层,业务逻辑层再请求到数据层。

      操作:BLL层引用DAL层  (引用-鼠标右键 添加引用-项目-DAL打钩-确定)

                WcfService层也需要引用BAL层   (引用-鼠标右键 添加引用-项目-BLL打钩-确定)

     只有BLL层引用DAL层,才可以在BLL实例化DAL

②:写 BLL业务层之前,需要引用到几个命名空间 System.Data 和 System.SqlClient,System.ServiceModel

      在业务层开启一个服务契约,引用 - 添加引用 - 程序集-搜索ServiceModel-System.ServiceModel(第一个打钩)-点击确定按钮

   

      在服务端,做一个业务逻辑处理,实际上要操控的是数据库存储过程-[dbo].[WDLogin] (关键字 ALTER PROCEDURE ) 的存储语句@type='btnLogin_Click_CheckLogin' (关键字 IF() );

     需要用到数据库的操作。在BLL,通过实例化DAL,调用DAL的方法--比如查询数据缓存,返回一条数据

     然后执行该业务层。执行之后(可以关掉),之后需要发布服务。

③:写完BLL层和DAL层,需要在WCF服务应用程序-WcfService层发布服务。

       展开WcfService,鼠标右键Web.config-编辑WCF配置-选中服务配置编辑器中的高级(展开)-服务行为(展开)-空名称-行为 常规配置 Name (给服务行为添加名字) 如 BLL

       添加名字,放开鼠标后,空名称就变为BLL  -  BLL里的第一个文件 ServiceMetadata - 默认常规是 True True Default, 把第二个True 对应的是 HttpsGetEnabled ,由True改为False

       BLL里的第二个文件 ServiceDebug - 默认为 True True False(IncludeExceptionDetailInFaults) 改为 True True True

       选中服务配置编辑器中的服务 - 新建服务 - 新建服务元素向导,点击浏览(服务类型不用填) - 弹出一个目录 - 向上一级找,找到BLL文件夹-bin文件夹-Debug-BLL dll -

      点击BLL.WDLogin 类型名称-打开按钮-回到新建服务元素向导页面-服务类型主动回填,复制类型名称(ctrl + C)-下一步(不用更改)-下一步-终结点的地址是什么-地址(A) 本地地址(一般都是) 删除http://(空白) - 下一步- Microsoft 服务配置编辑器 保留空地址 点击 是(Y)按钮-完成按钮

      完成之后,会新建一个服务BLL.WDLogin , 然后去配置终结点(展开)-空名称-服务终结点 常规 配置Name, Name为复制的类型名称(ctrl + V)-

     下一步把服务(BLL.WDLogin)归类到服务行为BLL(高级-服务行为)-选择服务(BLL.WDLogin)- 服务:BLL.WDLogin-常规 - BehaviorConfiguration(第一行)-点击向下展开按钮,选择你刚刚配置的服务行为BLL,

      至此,服务新建成功,但若需要发布服务,需要额为配置宿主环境;

      宿主坏境展开-serviceActivations(最后一个)-点击新建按钮-在服务激活编辑器中,匹配指定服务的相对路径RelativeAddress,复制类型名称(ctrl +V)+.svc(点svc) [BLL.WDLogin.svc] - 匹配Service复制类型名称(ctrl +V) [BLL.WDLogin] - 再复制服务的相对路径-BLL.WDLogin.svc -点击确定,配置成功,然后关闭,保存更改

      配置成功,需要去检测是否配置成功,运行项目,再原有地址,比如localhost:1228,之上,加一斜杠/,粘贴服务的相对地址BLL.WDLogin.svc,回车,当出现已创建服务时,表明服务创建成功,然后复制整条路径/链接,去客户端,通过整条路径/链接把客户端和服务端链接起来。

      

④:客户端如何引用服务端

       在客户端,需要添加服务引用。引用-添加服务引用-粘贴地址-给命名空间命名

      地址是发布服务的完整路径。点击转到按钮,查看是否找到一个服务。成功,

      更改命名空间名称(把服务封装成一个命名空间),通过命名空间的方式直接引用服务,

     若添加成功,则会在引用上方,生成一个名为 Connected Services 的服务引用。展开服务引用后,里面是新添加的命名空间。

     这样就可以拿到服务层,可以通过实例化命名空间的方式,直接调用服务层的方法

标签:服务,DAL,步骤,BLL,发布,引用,True,WcfService
来源: https://blog.csdn.net/m0_59497361/article/details/120357093

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有