【发布时间】:2015-02-09 16:27:54
【问题描述】:
我有一个进行 web api 调用的 crm 动态插件,但我收到以下错误:
The remote server returned an error: (400) Bad Request
我正在使用以下代码
using (WebClient client = new WebClient())
{
string URI = "http://myserver/api/myaction";
string myParameters = string.Format("param1={0}", param1);
using (WebClient wc = new WebClient())
{
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
string HtmlResult = wc.UploadString(URI, myParameters);
}
}
当我使用插件注册工具对其进行分析和调试时,Web api 调用会返回有效结果并且不会出错。
任何想法是什么导致了这个令人愤怒的问题?
更新: 该插件在沙盒模式下运行并且在本地。 我们尝试过使用异步 HttpClient,但这需要引用额外的 dll,这会导致它自己的问题(将 dll 添加到 GAC/ILMerge),因此最初尝试使用 WebClient 获得一个工作解决方案,不需要额外的 dll 引用。
【问题讨论】:
-
您的插件是否在隔离/沙盒模式下运行(本地选项/在线所需)并且它是异步的吗?您的 WebAPI 是否使用身份验证?
-
另外,您是否尝试过在 WebApi 端进行跟踪(asp.net/web-api/overview/testing-and-debugging/…)?
-
我添加了一些附加信息@Nicknow
-
追踪成功了吗? WebApi 端的跟踪应该会告诉您为什么它返回 400 错误。
标签: asp.net-web-api dynamics-crm-2011 dynamics-crm webclient asp.net-web-api2