【问题标题】:WebClient.UploadString Returns 500 Submitting to Web Service Running On IIS ExpressWebClient.UploadString 返回 500 提交到在 IIS Express 上运行的 Web 服务
【发布时间】: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


    【解决方案1】:

    抛出的 500 异常是 HttpException 类型的,所以我阅读了响应并发现了这个错误消息:

    无法向会话状态服务器发出会话状态请求。 请确保 ASP.NET 状态服务已启动并且 客户端和服务器端口相同。如果服务器在远程 机器,请通过检查确保它接受远程请求 的价值 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection。 如果服务器在本地机器上,并且如果前面提到 注册表值不存在或设置为0,则状态服务器 连接字符串必须使用“localhost”或 '127.0.0.1' 作为服务器名称。

    所以我只需要打开 ASP.NET 状态服务。我可以进行 web.config 转换,让 debug/local 简单地在常规 inproc 会话中运行,然后让发布版本使用状态服务(在我们的例子中是必需的),但现在在本地打开它就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 2012-12-25
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多