用VS 2008开发WCF(二)——构建最初的服务器

本文详细介绍如何不依赖默认WCF服务器,通过.NET System.ServiceModel名空间创建自定义Windows控制台项目,实现自己的WCF服务器,并配置App.config进行服务监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 嗯,现在有个问题的确摆在了我们眼前,不管怎么样,不能靠类库吃一辈子吧?总要学会自己构建一个服务器的吧。

那好,我们来制作一个服务器吧。

 

创建一个windows控制台项目,命名为Host

对Host添加.NET System.ServiceModel名空间引用

对Host添加刚才生成的WCF项目,注意,不是引用服务,就是引用本地项目类库,我们的目标是不再使用wcf默认的服务器了。

然后对Host项目添加项目配置文件App.config

将WCF类库中自动生成的App.config内容原封不动的全部拷贝到Host项目的App.config中

编写Host中的主文件如下

 

好了,然后直接运行Host程序,等程序启动完以后再启动Client程序,同样可以看到结果哦。

### PowerShell 与传统 Shell 的区别及应用场景 #### 1. **基础架构** - **PowerShell** 是基于 .NET Framework 构建的高级脚本语言和命令行外壳,其设计目标是通过对象驱动的方式简化复杂系统的管理[^4]。相比之下,**传统 Shell(如 Bash 或 sh)** 主要依赖于文本流处理技术来完成任务。 - 在数据传递方面,PowerShell 使用的是完整的 .NET 对象而不是简单的字符串或字节流[^2]。这使得开发者能够直接操作属性并调用方法,从而减少了手动解析工作的需求。 #### 2. **编程模型** - **PowerShell 提供了一种更接近现代编程范式的体验**,支持函数定义、异常处理、命名空间导入等多种特性[^3]。这些都让构建大型应用程序变得更加容易。 - 而大多数经典 Unix/Linux Shells 更倾向于小型工具组合哲学——即“做一件事并且做好”,它们通常依靠管道符 (`|`) 将多个简单指令串联起来形成复合行为[^4]。 #### 3. **跨平台兼容性** 虽然最初仅限于 Windows 平台,但现在随着开源化进程推进,最新版 PowerShell Core 已经可以运行在 Linux 和 macOS 上面[^4];然而,某些专属于 Windows 特定功能可能无法完全移植到其他操作系统当中去。 另一方面,像 bash 这样的 POSIX-compliant shells 几乎无处不在,在几乎所有类 UNIX 系统中都可以找到它的身影,并且具有高度一致性的语法结构[^4]。 #### 4. **生态系统** 由于背后有强大的微软技术支持加上活跃的社区贡献者群体存在,因此围绕着 PowerShell 形成了非常丰富的插件库生态体系[^3]。例如可以通过 PSGallery 下载安装第三方扩展模块满足个性化定制需求。 与此同时,Bash 社区同样历史悠久底蕴深厚,拥有无数现成可用的小型实用程序可供借鉴参考[^4]。 --- ### 应用场景对比 #### A. **系统管理和自动化运维** 两者均可胜任日常服务器维护工作比如启动停止服务、监控性能指标等基本职责。不过鉴于前者内置了 CIM/WMI 支持再加上 Remoting 功能加持使其特别适合用来远程操控多台机器上的资源配置状况[^1]。 而对于那些偏好轻量化解决方案或者已经熟悉 GNU coreutils 集合的朋友而言,则可能会更加青睐后者所提供的简洁明快风格。 #### B. **软件开发辅助角色** 当涉及到需要频繁调用 COM 组件或者是 WCF web services 场景时,显然采用 PowerShell 编写相关测试框架会显得更为便捷高效一些[^1]。另外借助 powershell-yaml 模块还可以很方便地读取 Kubernetes manifest 文件等内容[^2]。 至于纯文本加工转换之类的事务则往往更适合交给 awk/sed/grep 这些老牌选手去解决。 --- ```powershell # 示例:使用 PowerShell 创建一个新的 AD 用户账号 Import-Module ActiveDirectory New-ADUser -Name "JohnDoe" -GivenName John -Surname Doe -SamAccountName johndoe ` -UserPrincipalName johndoe@contoso.com -Enabled $true -PassThru | Set-ADUserPassword -Reset -NewPassword (ConvertTo-SecureString 'P@ssw0rd!' -AsPlainText -Force) ``` ```bash # 示例:使用 Bash 执行批量重命名图片文件名的任务 for f in *.jpg; do mv "$f" "$(echo ${f%.jpg} | tr '[:upper:]' '[:lower:]').jpg"; done ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值