原文:构建安全的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. Swift实现OC中的单例模式

    一.MySingle类 import Foundation class MySingle{ //定义单例的属性 var name:String? var age:Int? var height:Dou ...

  2. HDU 4916 树分治

    Mart Master II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 如何禁止使用teamviwer的使用

    前几天有人问我teamviwer怎么禁止,刚开始做实验的时候过滤了teramviwer.com解析出来的IP,可是还是没有用,其实将teamviwer登陆的服务器地址在路由器上过滤,teramviwe ...

  4. AOP 之 6.1 AOP基础 ——跟我学spring3(转)

    http://jinnianshilongnian.iteye.com/blog/1418596

  5. quick-cocos2d-x游戏开发【4】——加入文本

    文本的加入在quick中被封装在ui类中,它能够创建EditBox.菜单以及文本,文本总得来说能够创建TTF和BMFont两种. api对于它的说明非常具体.ui.newBMFontLabel(par ...

  6. js实时监听input中值的变化

    $(function(){ $('#inputid').bind('input propertychange', function() { // input 中的值 var params = $(th ...

  7. sql小技巧 group by datetime类型字段,只取其中的日期部分

    工作中经常会遇到,要在sql中查询报表,查询结果要求按照日期来罗列, 或按照天, 或按照月,年. 这个时候我们经常会苦恼,datetime是精确到毫秒的,如果单纯的group by datetime就 ...

  8. WPF命中测试示例(一)——坐标点命中测试

    原文:WPF命中测试示例(一)--坐标点命中测试 命中测试也可被称为碰撞测试,在WPF中使用VisualTreeHelper.HitTest()方法实现,该方法用于获取给定的一个坐标点或几何形状内存在 ...

  9. Ansible@一个高效的配置管理工具--Ansible configure management--翻译(八)

    如无书面授权,请勿转载 第四章,大型项目中Ansible的使用 Roles If your playbooks start expanding beyond what includes can hel ...

  10. lca转RMQ

    这个博客写得好 #include <stdio.h> #include <vector> #include <string.h> using namespace s ...