原文:构建安全的Xml Web Service系列之wse之证书存储位置

我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问:

构建安全的Xml Web Service系列之初探使用Soap头

构建安全的Xml Web Service系列之如何察看SoapMessage

构建安全的Xml Web Service系列之SSL篇

我曾经在上面几篇文章中承诺过要写一些有关wse3.0的,可一直没有时间,自身对wse3.0的认识也是非常有限,所以一直没有实现诺言,很是愧疚,今天我就一个小问题作为wse的引子,希望大家继续关注和支持我。

第一次使用windows live writer,难免有排版和疏漏,见谅

今天发生了一件十分郁闷的事情,好多天前我用wse3证书验证方式架设了一个web service,另外又多此一举的加上了SSL,并在本地安装根证书和用于wse验证证书,在本地创建的客户端是一个web application,在vs 2005里面调试一直没有问题,好长时间了,我还以为一切顺利呢,给合作方也写了文档说明,发给了人家,结果今天对方报告说将网站发布在开发机上后,无法访问,错误为在指定存储位置找不到x.509证书,我在本机测试了下,你说郁闷不?在vs2005里面调试中运行的好好的页面,发布到IIS中就有这个问题,我将证书存储在CurrentUser的My下面了,我开始就怀疑network services 不能访问这个存储位置造成这个错误,但是为何在vs2005中调试就没有问题呢?细想,原来在vs2005的虚拟IIS是不是运行在network service账户下的,因为我每次调试,并没有看到w3wp进程启动,network services账户是不能访问当前用户存储下的证书的,这个是一个wse访问证书因为权限问题最常见的问题,而windows应用程序因为运行在当前账户上却可以访问。而network service能够访问本地计算机存储位置下的证书,于是我将证书重新导入到本地计算机-个人,然后将<x509 storeLocation="CurrentUser"更改为<x509 storeLocation="LocalMachine",重新打开网页,程序就可以了。

通过今天这个小小的问题,我总结出三条经验:

1)当我们遇到同样环境下,同一个程序一个能运行,一个不能运行,我们首先可以考虑的是权限的问题,我们程序运行的账户是否有权限访问某个资源。

2)vs2005中虚拟的IIS和IIS存在着些许的差异,不要图一时方便,用这个作为程序正常的标准,最好还是在iis里面调试和运行程序,可以少一些麻烦。

3 )  当您的应用程序为运行在iis的应用程序的时候,如果不采用模拟,您的应用程序是不能访问位于当前用户下的证书的,包括用于SSL的证书,这个问题更典型,如果您在ie中能访问https的页面,在程序中却不能的话,那问题可能就出在这里。ie是运行在当前用户的,所以能访问当前用户下证书,而iis中的程序是运行在network services的,不能访问,您必须将证书存放在本地计算机才可以。

构建安全的Xml Web Service系列之wse之证书存储位置的更多相关文章

  1. 构建安全的Xml Web Service系列之wse之错误代码详解

    原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...

  2. 构建安全的Xml Web Service系列之SSL篇

    原文:构建安全的Xml Web Service系列之SSL篇 首先介绍一下SSL, SSL 的英文全称是 "Secure Sockets Layer" ,中文名为 "安全 ...

  3. 构建安全的Xml Web Service系列之初探使用Soap头

    原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来 ...

  4. 构建安全的Xml Web Service系列之如何察看SoapMessage

    原文:构建安全的Xml Web Service系列之如何察看SoapMessage 上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53)     ...

  5. C# 开发XML Web Service与Java开发WebService

    一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  6. 深入学习Web Service系列----异步开发模式

    概述 在本篇随笔中,通过一些简单的示例来说一下Web Service中的异步调用模式.调用Web Service方法有两种方式,同步调用和异步调用.同步调用是程序继续执行前等候调用的完成,而异步调用在 ...

  7. XML Web Service架构图

  8. Web Service简介 内部资料 请勿转载 谢谢合作

    1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  9. Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

随机推荐

  1. cocos2d-x CCNode类

    文章引用自http://blog.csdn.net/qiurisuixiang/article/details/8763260 1 CCNode是cocos2d-x中一个非常重要的类.CCNode是场 ...

  2. 最经常使用的两种C++序列化方案的使用心得(protobuf和boost serialization)

    导读 1. 什么是序列化? 2. 为什么要序列化?优点在哪里? 3. C++对象序列化的四种方法 4. 最经常使用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序猿在编写应用程序的时候往往须 ...

  3. CC++刚開始学习的人编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手

    我们在Windows8.1安装VS2013并捆绑QT与编程助手须要下列文件. 2. 在虚拟机中开启Windows8.1 3.然后选择VS2013的安装镜像. 4.将镜像拷贝到虚拟机. 5.我们装载这个 ...

  4. Android利用反射获取状态栏(StatusBar)高度

    MainActivity如下: package cc.teststatusbarheight; import java.lang.reflect.Field; import android.os.Bu ...

  5. Datameer for Hadoop Solution

    Hadoop promises to become a ubiquitous framework for largescale business intelligence, but right now ...

  6. Struts2第一个工程helloStruts极其基本配置

    前面已经准备好了Struts-2.3.15,现在就可以直接搭建Struts2的工程了.前面http://blog.csdn.net/huangchnegdada/article/details/917 ...

  7. SPARK如何使用AKKA实现进程、节点通信

    SPARK如何使用AKKA实现进程.节点通信 <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 < ...

  8. hdu4614(线段树+二分)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4614 题意:给定一个区间[0,N-1],初始时每个位置上的数字都是0,可以对其进行以下两种操作: 1. ...

  9. 为什么推荐std::string而不是char*

    例如如下: map<const char*, const char*> map_test; map_test["a"] = "a"; map_tes ...

  10. Shell 脚本常用命令

    Shell脚本是Linux开发工作中常用的工具,但是我一直没有找到一个适合自己的简明扼要的HandBook.在工作过程中整理了一下,贴在这里已备查看. 1           Shell中的特殊符号 ...