【发布时间】:2014-03-13 16:07:33
【问题描述】:
我有一个问题。我有一个 Web 服务,并且我有一个“.p12”文件,我需要在我的 Web 服务中读取它来处理一些指令。阅读“.p12”文件是必要的(文件[认证]允许我在我的域[谷歌电子邮件服务]中创建用户)
嗯,在我的机器上,Web 服务运行良好,但是当我在服务器中发布 Web 服务时,它不起作用。我已将文件 (.p12) 复制到 web 服务的主文件夹中,也复制到 bin 文件夹中,在服务器的“C”单元中,但它不起作用。
这是读取文件的那一行(我用的是 C#):
var certificate = new X509Certificate2(@"C:\\nameOfMyFile.p12", "notasecret", X509KeyStorageFlags.Exportable);
它显示了一个错误:服务器无法处理请求。 ---> 内部错误。
之后,我尝试了这个:
string hpath = HttpContext.Current.Server.MapPath(".");
hpath = hpath + "\\nameOfMyFile.p12";
var certificate = new X509Certificate2(System.Web.HttpContext.Current.Server.MapPath(hpath, "notasecret", X509KeyStorageFlags.Exportable);
它显示了同样的错误:服务器无法处理请求。 ---> 内部错误。
之后,我只写文件名:
var certificate = new X509Certificate2(@"nameOfMyFile.p12", "notasecret", X509KeyStorageFlags.Exportable);
它显示了这个错误:服务器无法处理请求。 ---> 系统找不到指定的文件
那么,我是否需要为文件、文件夹、网络服务分配一项特殊权限?读取这样的文件 (.p12) 的最佳方式是什么?
提前致谢。
【问题讨论】:
-
这听起来确实可能是一个配股问题。尝试将文件放在网站目录中,并确保您指定的匿名访问用户实际上有权从该目录读取。
-
谢谢你的回答,我去看看。
标签: c# asp.net .net web-services