有很多朋友在看过了WSE3.0的例子后,都有一个奇怪的问题,那个证书是怎么生成的,如果不知道怎么生成的,不就不能够用WSE3.0的项目了,而且,如果我需要的证书是要有我需要的名字的时候,怎么办呢?
    这个事情在我脑中想了一段时间,后来终于明白了。在我们用WSE3.0的例子时候,不是有运行Setup.bat的操作吗?bat不是包含DOS命令窗口吗?打开Setup.bat,果然,里面有个一些操作生成证书的DOS命令,看到很多$SERVER_NAME$,$CLIENT_NAME$\$ROUTER_NAME$的宏定义,明白了,原来这个可以自定义是什么名称,如果我在set SERVER_NAME=WSE2QuickStartServer
set CLIENT_NAME=WSE2QuickStartClient
set ROUTER_NAME=WSEQuickStartRouter
里面把名称改成我需要的证书名称不就可以了吗?
    原来证书这个东西也挺好弄的,不过我没有研究深入,其实证书管理这个东西关系到很多东西,我在这里也不想研究了,毕竟我只要用户认证方式操作就好了,o(∩_∩)o...,还是留些时间看看我想看的MSMQ说明吧。
    还要说明一下,在Setup.BAT文件夹里面还有个文件叫Cleanup.bat,浏览了一下,是删除证书。这样一来我们只需要改变其变量文件名就可以创建和删除自己需要的证书了。OK,下面复制粘贴一下Setup.bat,和Cleanup.bat文件,留以备份。

...............................................
Setup.bat
...............................................

echo off
REM **
echo ************
echo NOTE: This batch file must be run from a Visual Studio 2005 Command Prompt
echo ************

REM ** This batch file
REM ** 1) Sets the directories and file access privilege depending on the OS.
REM **    This is necessary so that the WSE trace files can be successfully written
REM ** 2) Generates and installs sample certificates into the certificate stores
REM **    for use with the Quickstart samples.
REM **

echo ******* Important *******
echo By default ASP.NET v2.0 is not set as the active
echo version when .NET v2.0 is installed on a machine that has either .NET v1.0 or
echo .NET v1.1 already installed.
echo To check which ASP.NET is the default, run the following command from a VS2005 command prompt;
echo aspnet_regiis.exe /lv
echo and check which version has the (root) name associated with it.
echo If this is not v2.0, then ASP.NET v2.0 can be enabled with the following command;
echo aspnet_regiis.exe /i /e
echo See the Quickstart readme.htm in this directory for more details.
echo ******* Important *******

pause

REM ** Access priviledges
echo ************
echo Setting the access privileges on the Quickstart sample directories
echo so that the account that ASP.NET is running under can write WSE trace/diagnostic files.
echo ************

REM ** This version check only works on English machines.
set WP_ACCOUNT=NT AUTHORITY\NETWORK SERVICE
(ver | findstr "5.1") && set WP_ACCOUNT=%COMPUTERNAME%\ASPNET
cacls.exe . /T /E /G "%WP_ACCOUNT%":F > nul

REM ** Set up the Certificates
set SERVER_NAME=WSE2QuickStartServer
set CLIENT_NAME=WSE2QuickStartClient
set ROUTER_NAME=WSEQuickStartRouter

echo ************
echo Removing any WSE certificates that are already installed
echo ************

REM Server Certs
certmgr -del -r CurrentUser -s AddressBook -c -n %SERVER_NAME%
certmgr -del -r LocalMachine -s My -c -n %SERVER_NAME%

REM Client Cert
certmgr -del -r CurrentUser -s My -c -n %CLIENT_NAME%

REM Router Cert
certmgr -del -r LocalMachine -s My -c -n %ROUTER_NAME%

echo ************
echo Server cert setup starting
echo %SERVER_NAME%
echo ************
echo Making server cert
echo ************
makecert.exe -sr LocalMachine -ss MY -a sha1 -n CN=%SERVER_NAME% -sky exchange -pe
echo ************
echo Copying server cert to client's CurrentUser store
echo ************
certmgr.exe -add -r LocalMachine -s My -c -n %SERVER_NAME% -r CurrentUser -s AddressBook

echo ************
echo Client cert setup starting
echo %CLIENT_NAME%
echo ************
echo Making client cert
echo ************
makecert.exe -sr CurrentUser -ss My -a sha1 -n CN=%CLIENT_NAME% -sky exchange -pe
echo ************

echo ************
echo Router cert setup starting
echo %ROUTER_NAME%
echo ************
echo Making router cert
echo ************
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=%ROUTER_NAME% -sky exchange -pe
echo ************

echo ************
echo Setting access privileges on the certificates depending on the OS
echo ************
echo ************
echo Accessing the LocalMachine Personal Store For the Server Cert.
echo ************
set WP_ACCOUNT=NETWORK SERVICE
(ver | findstr "5.1") && set WP_ACCOUNT=%COMPUTERNAME%\ASPNET
winhttpcertcfg -g -c LOCAL_MACHINE\My -s %SERVER_NAME% -a "%WP_ACCOUNT%"

echo ************
echo Accessing the LocalMachine Personal Store For Router Cert.
echo This is used by the SecureRoutingToUltimateReceiver sample.
echo ************
winhttpcertcfg -g -c LOCAL_MACHINE\My -s %ROUTER_NAME% -a "%WP_ACCOUNT%"

echo ************
echo Restart IIS.
echo ************
iisreset


...............................................
Cleanup.bat
...............................................

echo off

REM ** Set up the Certificates
set SERVER_NAME=WSE2QuickStartServer
set CLIENT_NAME=WSE2QuickStartClient
set ROUTER_NAME=WSEQuickStartRouter

echo ************
echo Removing any WSE certificates that are already installed
echo ************

REM Server Certs
certmgr -del -r CurrentUser -s AddressBook -c -n %SERVER_NAME%
certmgr -del -r LocalMachine -s My -c -n %SERVER_NAME%

REM Client Cert
certmgr -del -r CurrentUser -s My -c -n %CLIENT_NAME%

REM Router Cert
certmgr -del -r LocalMachine -s My -c -n %ROUTER_NAME%

posted @ 2008-03-31 09:42 黄超 阅读(43) | 评论 (0)编辑

    在WSE3.0学习过程中,发现反应最为强烈的错误是WSE901错误,因为都是封装好的类,根本调试不到里面的错误,让你一时有抓破头皮都不知道怎么弄的感觉,只能四处求医,但病根始终找不到,应为是英文的资料比较多,只能硬着头皮好好看了,(英文确实很重要),发现几个解决方法,归总如下:
    首先:说得最多的Solu是时间设置太短,对于客户端不在本机的程序来说,出现这个几率的机器很大,因为默认的是300毫秒,这个反应时间过段了点,如果是这中情况,就在WebConfig里面修改一下默认返回时间,或是在WSE3.0设置里面设置反应时间也行。不过对于本机调试状况出现这个问题的时候,这点没用,本机基本都可以在默认时间返回参数。
    其次:有时候对于多台电脑访问的时候会产生电脑时间不同的情况,也就是说客户端的时间和服务器的时间不正确,我用客户机器的时候居然碰见有人把我的市区改成到非洲了,让我调试到“非洲”了,那怎末可能调通呢。
    再次:如果你是用本机例子进行研究的话,QuickStart里面有个Setup.bat的文件,你需要执行,还有就是,这个需要调用VS2005的SDK里面生成证书的两个EXE文件,如果你的环境变量被改了,需要把SDK的路径加到环境变量Path变量里面去,保证能找这个问题。
    再提一点,在你配置WSE3.0的时候,我指的用用户名登陆的情况,一定要选择相同的证书,这也会产生这个问题,反正WSE901错误确实有很情况,调试的时候,大家需要注意。
    如果你用的是某人(忘记了,是谁写了个四部曲)的4步操作建立WSE3.O服务器客户端,他演示代码里面差一个CONFIG设置,他的写了个验证类,这个类需要在CONFIG设置他的链接。具体你可以从他的代码下载里面找到。
     最后发点牢骚,当你遇见WSE901错误100次以后,觉得想放弃弄WSE3.0的时候,那也许是你要解决这个问题的时候,所以大家不要放弃。当你最坏的时候,光明也就在不远的前面。不放弃不抛弃。大家需要这种精神。

posted @ 2008-03-30 14:51 黄超 阅读(34) | 评论 (0)编辑
    浏览过QuickStart例子后,我感觉WSE3.0确实方便不少,相比做WS的异步操作要方便了很多,对于多线程的处理也甚至好了许多,不用考虑多线程怎样设定,用基础类去操作,直接用简单的Attibute(属性)去标记就解决了繁琐的问题。
    介绍一下Basic目录下的几个例子。
    1.BseStockService 是一个处理多线程例子,比较方便处理并发事件的方法。操作也很简单,添加[MTAThread]就可以解决!!
    2.AsyncStockService是一个处理异步操作的例子,跟原来WS处理异步差不多,就是封装了些方法。感觉简单,比较符合编程模式。
    3.BinaryDataMTOM是一个处理二进制文件例子,把图片设置成二进制文件传输的过程。
到这个地方出现了个问题,我还没解决。
Unsecured Bytes Received 不安全字节接收,文件是接收到了,但是跳出异常不能继续了,调试了一下是安全设置没弄好,我要查一下资料了。下次再继续。
posted @ 2008-03-28 09:13 黄超 阅读(40) | 评论 (3)编辑

感谢麒麟!http://www.cnblogs.com/kirinboy
感谢Happyqq! http://www.cnblogs.com/HappyQQ

1.

书名:Microsoft .NET框架程序设计(修订版)

作者:Jeffrey Richter

译者:李建忠

出版日期:2003 年11月

出版社:清华大学出版社

推荐理由:框架设计是我看的第一本真正意义上的.NET书籍,之前看过很多,但都是工具类的。如果仅仅把.NET作为开发程序的工具,那些书就足够了。但是.NET绝不仅仅是个工具,它是一种思想、一个平台。要想深入学习,必须对其Framework有所了解。《Microsoft .NET框架程序设计(修订版)》无疑是学习.NET Framework最好的一本。李健忠老师的翻译通俗流畅,并且字里行间流露着他对.NET的深刻理解。这本书陪伴我度过了研究生期间很多无聊的课程。不过初学者看这本书开始也许会很费劲,有一次一个同搞.NET的同学拿过去翻了翻就扔给了我,说:看不懂。

 

2.

书名:重构:改善既有代码的设计(中文版)

作者:Martin Fowler

译者:侯捷,熊节

出版日期:2003 年9月

出版社:中国电力出版社

推荐理由: 重构,这个既简单又深奥的概念直到现在仍然吸引着广大设计爱好者。几年前当我几乎被这个名词弄晕的时候,我找到了这本书——重构的诞生地。它同样是我的“课堂书籍”。与《框架设计》不同的是,它的概念和理论十分简单,即使对编程只有一点点的认识,也能很惬意的阅读本书。因为它所阐述的,就是我们程序员平时所做的——修改代码。但如何更好的修改,使其更符合OO标准,又是一个非常复杂的过程。

 

3.

书名:敏捷软件开发:原则、模式与实践

作者:Robert C. Martin

译者:邓辉

出版日期:2003 年9月

出版社:清华大学出版社

推荐理由: Bob大叔最脍炙人口的作品。如果你看过《设计模式》与《重构》,那么推荐你接着看这本,对于设计模式的理解就会上升一个层次。熟练掌握各种设计原则,我们就不必再死记那些刻板的模式。只要我们的设计复合原则,就是一个良好的设计。《设计模式》、《重构》和《敏捷软件开发》是设计爱好者必读的三本书。

 

4.
书名:ASP.NET 2.0揭秘

作者:Stephen Walther

译者:谭振林,黎志,朱兴林,马士杰

出版日期:2007 年10月

出版社:人民邮电出版社

推荐理由:将近一年没有搞ASP.NET了,因此这本书买来也束之高阁。但此书1.1版本却令我印象深刻。当年就是那本绿皮的《ASP.NET揭秘》把我领进了ASP.NET的殿堂。我甚至一度认为其它的ASP.NET书都是垃圾(特别是清华大学出版的Wrox的红皮书,其实是翻译的太烂)。虽然2.0版本的中文版姗姗来迟,但是我仍然认为它值得收藏。特别是四位国内MVP的加盟,一定不会让人失望。越来越多的技术高手加入到写书译书的队伍中来,会彻底改变国内翻译书籍没法看的尴尬局面。

 

5.

书名:Head First设计模式(中文版)

作者:Eric Freeman,Elisabeth Freeman,With Kathy ierra,Bert Bates

译者:O'Reilly Taiwan公司

出版日期:2007 年9月

出版社: 中国电力出版社

推荐理由:这是一本让人拍案叫绝的书,它用浅显风趣的语言和别具一格的表现形式,把《设计模式》中天书一般的理论展现的精妙绝伦。如果你对设计模式还一知半解,或被《设计模式》中晦涩的文字搞得晕头转向,那么赶快来阅读本书吧。然而从某种意义上说,《Head First设计模式》是一本不能看的书,因为你一旦看过,会对其它的书倍感失望。所谓曾经沧海难为水是也。

6.

书名:重构与模式

作者:Joshua Kerievsky

译者:杨光,刘基诚

出版日期:2006 年12月

出版社:人民邮电出版社

推荐理由:很遗憾,我是在看完《Head First设计模式》后看得这本书,因此对其语言的易读性很是失望。甚至一度把它放回了书架上。但是这并不代表它不是一本经典书。它将重构与模式完美的结合,使我们明白了设计是按照设计原则将代码重构成模式的过程。

 

7.
书名:C#和.NET 2.0 实战:平台、语言与框架

作者:Patrick Smacchia

译者:施凡,李永伦,谭颖华,徐宁

出版日期:2008 年1月

出版社:人民邮电出版社

推荐理由:不管你使用什么语言进行开发,都希望手头有一本大而全的参考书。否则东一本框架、西一本语法,南一本WinForm,北一本ASP.NET,会把人搞得很崩溃。尽管Google和百度在绝大多数情况下可以解决问题,但是万一没有网络呢?《C#和.NET 2.0 实战》就是这样一本书,它包罗.NET的万象,编程时遇到任何问题都可以先翻开本书寻找答案。如果你是一个.NET程序员,案边放这样一本书是再适合不过了。我在读书小组推荐过这本书。

 

8.

书名:企业应用架构模式

作者:Martin Fowler

译者:王怀民,周斌

出版日期:2004 年7月

出版社:机械工业出版社

推荐理由: 秉承Martin Fowler一贯的通俗易懂的写作风格,用最浅显的语言描述复杂的概念。书中所列举的各种模式,我们肯定都或多或少使用过。本书是分层设计的指导书。

 

9.

书名:.NET 设计规范——.NET约定、惯用法与模式

作者:Krzysztof Cwalina,Brad Abrams

译者:葛子昂

出版日期:2006 年7月

出版社: 人民邮电出版社

推荐理由: 你是否修改过别人的代码?你是否因为混乱的命名规则和晦涩的变量名称抓狂?如果所有.NET程序员都读过《.NET 设计规范》,这一切也许就不会发生了。它虽然名称为“Framework Design Guidelines”,但实际上不仅仅是指导我们如何编写框架,它本身就是.NET Framework的设计规范。我们平时在做任何开发,哪怕是最简单的工具时,也应该遵循书中所提出的标准。

 

10.

书名:设计模式:可复用面向对象软件的基础

作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides

译者:李英军,马晓星,蔡敏,刘建中

出版日期:2004 年9月

出版社: 机械工业出版社

推荐理由:之所以最后推荐本书,并不是因为它不如前几本,相反,它应该是所有设计爱好者的第一本书。但它太晦涩了,它就像是一本武林秘籍,不是所有人都能参透其中的奥秘。然而幸好很多高手练成绝世武功后,把他们的心得写了出来,这些心得要好理解得多。因此《Head First设计模式》、《设计模式解析》、《Java与模式》等应该称为设计模式初学者的首选。

C#设计模式 http://download1.csdn.net/down3/20070607/07094036803.rar

Head First中文版 http://www.sunjava.cn/book/headfirst_shejimoshi.zip

UML用户指南:http://dl2.csdn.net/down4/20070830/30101339814.rar

UML和模式应用:http://hnwt.hackvip.net/2008/uml和模式应用.rar

.NET框架程序设计:http://www.infoxa.com/asp/book/xzcs_n.asp?id=3768

Effective C++中文版第三版:ftp://125.64.92.37/20061213/f11f7dda-0e84-4a4c-aa56-c6ba8067c280.rar

重构与模式:http://www.shubulo.com/attachment.php?aid=2284

软件设计精要与模式:ftp://202.192.240.140/Ltsg/C0038500C0038599/C0038563.rar

代码大全2:http://downserver1.top002.com/codedown/4/17899.rar

C#高级编程:http://www.mianbi.com/bookn/3d97b914-4c85-447f-9e43-8d837bfd34f7.rar

设计模式:可复用面向对象软件的基础:
http://www.mianbi.com/bookn/3d97b914-4c85-447f-9e43-8d837bfd34f7.rar
ftp://www.tryosp.cn/20080310/设计模式:可复用面向对象软件的基础.rar

NET设计规范:.NET约定、惯用法与模
ftp://222.214.218.61/book1/20070403/665a31e1-4738-4c91-94c4-cdc48938360e.rar

企业应用架构模式
ftp://222.214.218.61/book3/20060809/bb4e31fd-4908-44dc-87b3-b5719c545d7e.rar

希望大家把电子书地址推荐一下,跟帖!!!
posted @ 2008-03-27 10:17 黄超 阅读(88) | 评论 (2)编辑

    最近公司讨论做一套WebServices,为我们的实时数据库TO Everything创造条件,我接下了这个任务,好像研究这个就像唐僧取经,要遇上很多困难一样,先要把VC转到C#,在把C#类转成WebService方法,看起来很简单,取经那有哪么简单的,轻松搞定了DLL被C#调用,又开始研究WebService,看了WebService,感觉挺简单的,然后学了下异步操作,看到了WSE这个东西,不就是WebService扩展吗?我看不一定,放下其他好好研究一下这个东西,也许有大用处呢?
    找了找资料,又发觉有WSE 1.0 2.0 3.0 WCF MSMQ等等,不管那多了,先学学WSE 3.0,看了Mark Fussell的博客,找到了个学习指导,我共享一下,让后来者都别走弯路了。
    大家都在寻找怎么去学习WSE3.0,下面就介绍以下内容,让大家迅速入门。
    首先,去WSE官方网站查看,地址
    1.下载WSE.3.0 SDK
    2.得到Sample,看代码.一般地址在你安装目录下的Sample,有两个语言支持,VB和VC。
    当然官网还有说明
    3.简单了解后,WSE3.0主要关注两个方面  Security 和 Messaging
这个过程大概需要两天时间。
    然后,再去做些例子和实践性的程序。推荐几个地方 
    1.微软的一些文章
    2.安全指导
    3.听一些WebCast
这大概需要3天时间
    然后可以回到主页去关注一些文章。
    “What's New in Web Services Enhancements 3.0“
     “Protect Your Web Services Through The Extensible Policy Framework In WSE 3.0 “
    然后就多看看视频和练习,推荐一个网站http://channel9.msdn.com/Shows/ARCast_with_Ron_Jacobs
下面就是一些建议了
1.WSE对于WEBService的保护是很容易的
2.用指纹识别的方式得到WebService验证。
3.在Messaging hands on lab的例子中,消息是通过SMTP协议去发送的,在这个地方,我不得不用一个固定的终端去连接,这时候就会产生,消息级别安全的问题了,这个方面也是个研究领域。


按照这个做把,上面的链接我都试过了,都可以链接到。

posted @ 2008-03-26 10:17 黄超 阅读(101) | 评论 (4)编辑
到博客园很长时间了,居然一篇文章都没写,从今天开始,我会把我的研究成果都放过来,供大家批评借鉴!
posted @ 2008-03-25 11:05 黄超 阅读(129) | 评论 (3)编辑