设为首页 收藏本站
查看: 920|回复: 0

为什么 Winfx 必须运行在windows xp sp2 和 windows 2003 以及之后的OS

[复制链接]

尚未签到

发表于 2015-5-3 10:19:47 | 显示全部楼层 |阅读模式
  
Winfx 目前已经到了Beta2的版本,主要包含WCF,WF,WPF 三部分。如果您要开发一些SOA 应用的话,WCF是一个很好的平台。他一方面很好的支持WS-*, 同时对于.NET 平台下的SOA又有自己的支持。
  具体安装步骤,可以参考:
http://msdn.microsoft.com/windowsvista/downloads/products/getthebeta/
  也可以参我我以前写的一片文章 SOA: msmq, WCF(Indigo), HelloWorld  http://montaque.iyunv.com/archive/2006/01/10/314684.html
  这时候,Runtime 会告诉你
Supported Operating Systems: Longhorn (Windows Code Name) ; Windows Server 2003 Service Pack 1; Windows XP Service Pack 2
今天在测试程序的时候,好似找到了一个理由,嘿嘿。听我慢慢道来。
  对于一个Service,微软给他定义了一个ABC Address,Binding,Contract
  所以WCF中以下配置很常见。描述了ABC

DSC0000.gif         
            
               
            
        
这时候,Console Host运行这个程序的时候。改程序就可以处理client通过http过来的请求调用。这时候问题就来了,WCF 用什么来处理http请求呢?

我们知道Remoting 的时候,微软用的一些native的http处理方式,当然这个方式就跟平台无关了。

当你用IE去请求一个WSDL的时候,他的响应,嘿嘿。可以看到他的"Server"

HTTP/1.1 200 OK
Content-Type: text/xml
Server: MS .NET Remoting, MS .NET CLR 2.0.50727.42
Content-Length: 3057

而 WCF 的时候,你同样的方式去请求WSDL的话。他的http头
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: text/html
Server: Microsoft-HTTPAPI
Date: Mon, 29 May 2006 04:09:24 GM

呵呵,这个这个头实施上说明他用了.Net 2.0 的类HttpListner 来做一个bulit-in web server ,而这个HttpListner 是xp sp2 跟 2003 才支持的。

这个帮助也说了该类仅在运行 Windows XP SP2 或 Windows Server 2003 操作系统的计算机上可用。如果尝试在运行更早版本操作系统的计算机上创建 HttpListener 对象,构造函数将引发 PlatformNotSupportedException 异常。

为什么呢,呵呵。 他用了一个low level http协议栈 http.sys, 而这个http.sys 是后面两个平台才有的。

关于httpListner 和 http.sys 。请参考一下两个link

在没有 IIS 的条件下运行 ASMX  http://www.microsoft.com/china/MSDN/library/WebServices/WebServices/ServiceStation.mspx?mfr=true

当然,你可以写一个简单的处理web请求的mini web server,贴一段代码


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Threading;
using System.Net;


namespace HttpListnerDemo
DSC0001.gif DSC0002.gif DSC0003.gif {
DSC0004.gif     class Program
DSC0005.gif DSC0006.gif     {
        static void Main(string[] args)
        {
            System.Net.HttpListener listner = new System.Net.HttpListener();
            listner.Prefixes.Add("http://+:8000/");
            listner.Start();
            while (true)
            {
                System.Net.HttpListenerContext context = listner.GetContext();
                System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(ProcessContext), context);
DSC0007.gif             }
        }

         public static void ProcessContext(object objContext)
           {
            try
            {
                HttpListenerContext context = objContext as HttpListenerContext;
                Console.WriteLine(context.Request.Url);
                context.Response.ContentType = "text/html";
                StreamWriter writer = new StreamWriter(context.Response.OutputStream);
                writer.WriteLine(string.Format("{0}{1}",context.Request.Url,DateTime.Now.ToString())) ;
                writer.Flush();
                context.Response.Close();
            }
            catch (System.Net.HttpListenerException exception)
            {
                Console.WriteLine(exception.Message);
            }
        }

    }
DSC0008.gif }

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-63042-1-1.html 上篇帖子: Windows 2003 SP1新体验 下篇帖子: Windows 2003/08域用户帐户的导出/导入
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表