【发布时间】:2019-06-19 14:19:21
【问题描述】:
我正在使用 .NET Framework 4.5.1 WebClient 并发布到我在本地运行的 *.ashx 以便我可以调试。客户站点使用如下代码:
var cli = new WebClient();
cli.Headers[ HttpRequestHeader.ContentType ] = "application/json";
var job = new
{
Inputs = inputs,
InputTables = inputTables,
...
};
var configuration = Newtonsoft.Json.JsonConvert.SerializeObject( job );
var response = cli.UploadString(
serviceUrl,
configuration
);
serviceUrl 是http://localhost:54300/Calculation.ashx,在 IIS Express 下运行。
网络服务通过以下方式返回结果:
private void ReturnResponse( HttpContext context, JObject result )
{
using ( var textWriter = new StreamWriter( context.Response.OutputStream ) )
{
context.Response.ContentType = "application/json";
using ( var jsonWriter = new JsonTextWriter( textWriter ) )
{
result.WriteTo( jsonWriter );
}
}
}
这一切都在我自己的个人电脑上工作,但在我公司发行的电脑上,它不起作用,我不知道去哪里找。我认为这是某种安全设置,或者至少我希望如此。
在我的公司计算机上,客户端站点成功提交到 Web 服务,我已经逐步检查了 Web 服务代码并且所有工作都在那里,它通过 ReturnResponse 返回结果并且一切看起来都是正确的。但是,客户端站点随后抛出 500 错误'远程服务器返回错误:(500) 内部服务器错误。'没有太多信息可继续。
另外:如果客户端站点(在我的公司计算机上运行)在 Web 服务托管在 Web 上(显然在 IIS 下运行)时提交给 Web 服务,则此代码可以正常工作。所以代码很好 - 在我看来:) - 但只有在本地运行 Web 服务时才会出现问题。
有人知道可能导致这种情况的某种安全/配置设置吗?正如我所说,它在多台个人机器上运行良好,没有问题。
【问题讨论】:
标签: c# webclient iis-express