我已经下载了通过https提供API的产品的试用版。目前我的asp.net mvc的web应用程序中我做了以下执行的API调用该产品的试用版: -Security.Authentication.AuthenticationException:根据验证程序,远程证书无效
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(RackJoin rj, FormCollection formValues)
{
string controllername = RouteData.Values["controller"].ToString();
if (ModelState.IsValid)
{
var message = "";
var status = "";
long assetid = new long();
XmlDocument doc = new XmlDocument();
using (var client = new WebClient())
{
var query = HttpUtility.ParseQueryString(string.Empty);
foreach (string key in formValues)
{
query[key] = this.Request.Form[key];
}
query["username"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];
query["password"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiPassword"];
string apiurl = "https://win-spdev:8400/servlets/AssetServlet";
//code goes here…..
var url = new UriBuilder(apiurl);
url.Query = query.ToString();
,但我会出现以下情况例外: -
发生错误:System.Security.Authentication.AuthenticationException: 根据验证 过程,远程证书无效。在 System.Net.Security.SslState.StartSendAuthResetSignal在 System.Net.Security.SslState(ProtocolToken 消息,AsyncProtocolRequest asyncRequest,例外的例外)在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) .StartSendBlob(字节[]来电,的Int32 计数,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲液,的Int32 计数,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartReadFrame (Byte [] buffer,Int32 readBytes,AsyncProtocolRequest asyncRequest)at System.Net.Security.SslState.StartReceiveBlob(字节[]缓冲液, AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartSendBlob(字节[]来电,的Int32 计数,AsyncProtocolRequest asyncRequest)处 System.Net.Security.SslState.StartReadFrame(字节[]缓冲 System.Net.Security.SslState.ProcessReceivedBlob(字节[]缓冲液,的Int32 计数,AsyncProtocolRequest asyncRequest)的Int32 的ReadBytes,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartReceiveBlob(Byte [] buffer, AsyncProtocolRequest asyncRequest)at S ystem.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartSendBlob(字节[]来电,的Int32 计数,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState .ProcessReceivedBlob(字节[]缓冲液,的Int32 计数,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartReadFrame(字节[]缓冲液,的Int32 的ReadBytes,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartReceiveBlob (Byte [] buffer, AsyncProtocolRequest asyncRequest)at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message,As yncProtocolRequest asyncRequest)在 System.Net.Security.SslState.StartSendBlob(字节[]来电,的Int32 计数,AsyncProtocolRequest asyncRequest)在 System.Net.Security.SslState.ForceAuthentication(布尔receiveFirst, 字节[]缓冲液,AsyncProtocolRequest asyncRequest )在在 System.Threading.ExecutionContext.RunInternal(ExecutionContext中 的ExecutionContext在System.Net.TlsStream.CallProcessAuthentication System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)(对象 状态),ContextCallback回调,对象的状态,布尔型 preserveSyncCtx) 系统。Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回调,对象的状态,布尔 preserveSyncCtx)在 System.Threading.ExecutionContext.Run(的ExecutionContext 的ExecutionContext,ContextCallback回调,对象状态)在 System.Net.TlsStream.ProcessAuthentication( LazyAsyncResult结果) System.Net.TlsStream.Write(Byte [] buffer,Int32 offset,Int32 size)at System.Net.PooledStream.Write(Byte [] buffer,Int32 offset,Int32 size) at System.Net .ConnectStream.WriteHeaders(布尔异步)
巴林在米IND,我可以调用API没有任何问题,如果我直接从我的Web浏览器中调用的API如下: -
https://win-spdev:8400/servlets/AssetServlet?username=tmsservice&password=test2test2&assetType=Rack&operation=UpdateAsset&assetName=rack9090909858585&accountName=GROUP&siteName=test%20site&productName=rackproductone
那么,这个问题涉及到的是,API是通过https,而且因为我在我的开发机器内部使用产品的试用版时,是否应该安装有效的证书?或者问题与安全认证无关? 谢谢
非常感谢它运作良好,并确保生产我将使用有效的证书。 –
我得到同样的错误,而从控制台应用程序连接smtp服务器,在主函数的开始使用代码,它解决了问题....非常感谢你分享它。 –