Silverlight 4 OOB浏览器HTTP堆栈客户端证书=失败?

Silverlight 4 OOB浏览器HTTP堆栈客户端证书=失败?,第1张

概述当我使用SSL和客户端证书从浏览器外的Silverlight 4应用程序调用IIS 7.5(在 Windows 7 64位上)失败时,我遇到了一个问题,消息“I / O *** 作有由于线程退出或应用程序请求而被中止.(0x800703e3)“.该请求确实进入IIS.这是失败的请求跟踪中的示例: The I/O operation has been aborted because of either a 当我使用SSL和客户端证书从浏览器外的Silverlight 4应用程序调用IIS 7.5(在 Windows 7 64位上)失败时,我遇到了一个问题,消息“I / O *** 作有由于线程退出或应用程序请求而被中止.(0x800703e3)“.该请求确实进入IIS.这是失败的请求跟踪中的示例:

The I/O operation has been aborted because of either a thread exit or an application request. (0x800703e3) http://www.slipjig.org/IISError.gif

我正在使用浏览器http堆栈,因为客户端http堆栈不​​支持客户端证书.尝试命中服务器的客户端代码是Prism模块加载器.如果我在浏览器外运行应用程序但忽略客户端证书,或者如果我在浏览器中运行应用程序但需要客户端证书,则可以正常工作.这似乎是导致问题的两者的结合.

我尝试了以下内容来收集更多信息:

>使用fiddler查看失败的请求.如果fiddler正在运行(大概是因为fiddler以不同方式处理客户端证书?);
>创建.aspx Web表单以提供模块.xaps;
>创建一个httpModule,看看我是否可以在失败之前拦截请求;
>使用数据包嗅探器查看是否可以判断客户端证书是否正确发送.

除了我在跟踪文件中看到的内容之外,上述所有内容都没有给我提供更多有用的信息,尽管fiddler的内容很有趣.

有任何想法吗?提前致谢!
麦克风

解决方法 在这个问题上我连续几个星期都撞到了墙上.这是我学到的以及我最终如何解决它.

Prism的fileDownloader类使用System.Net.WebClIEnt来加载模块.在OOB模式下,WebClIEnt似乎使用与IE相同的堆栈,但它显然要么不发送客户端证书,要么(更有可能)没有正确协商与服务器的SSL /客户端证书握手.我这样说是因为:

>我能够使用firefox和Chrome成功请求.xap文件;
>我无法使用IE成功请求.xap文件;
> IIS将失败,而不是403.

我无法很好地了解电线上实际发生的情况;如果我使用fiddler,它会工作,因为fiddler拦截与服务器的通信并处理客户端证书握手本身.并且尝试使用数据包嗅探器显然不会因为SSL而告诉我任何事情.

所以 – 我首先花了很多时间在服务器端试图消除可能导致问题的事情(不需要的处理程序,模块,功能等).

当这不起作用时,我尝试修改Prism源代码以使用浏览器的http堆栈而不是WebClIEnt.为此,我创建了一个类似于fileDownloader的新类,实现了使用浏览器堆栈的IfileDownloader.然后我对XapModuleTypeLoader(实例化下载程序)进行了一些更改,以使其使用新类.这种方法失败了,我遇到了同样的错误.

然后我开始研究商业第三方http堆栈是否可用.我找到了一个支持我需要的功能并且支持Silverlight 4运行时的功能.我创建了另一个使用该堆栈的IfileDownloader实现,以及BOOM – 它的工作原理.

这种方法的好消息是,我不仅可以使用它来加载模块,我还可以使用它来保护客户端和我们的REST API之间的通信(我们之前将放弃的好处).

我打算向Prism提交一个补丁,允许下载器在外部注册或绑定,因为它目前硬编码为使用自己的fileDownloader.如果有人对我或我正在使用的商业http堆栈感兴趣,请联系我(msimpson -at- abelsolutions -dot- com)获取链接和代码示例.

我必须这样说 – 我仍然不确定根问题是在客户端或服务器端的http堆栈中,但它仍然是微软的失败.

总结

以上是内存溢出为你收集整理的Silverlight 4 OOB浏览器HTTP堆栈客户端证书=失败?全部内容,希望文章能够帮你解决Silverlight 4 OOB浏览器HTTP堆栈客户端证书=失败?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存