Я использую .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 );
}
}
}
Это все работает на моем собственном персональном компьютере, но на компьютере, выпущенном моей компанией, он не работает, и я теряюсь, где искать. Я предполагаю, что это какая-то настройка безопасности, или, по крайней мере, я надеюсь.
На компьютере моей компании клиентский сайт успешно отправляется в веб-службу, я прошел через код веб-службы и все работает там, и он возвращает результат через ReturnResponse
, и все выглядит правильно. Но клиентский сайт затем выдает ошибку 500 'Удаленный сервер возвратил ошибку: (500) Внутренняя ошибка сервера.' без дополнительной информации.
Дополнительно : Этот код работает нормально, если сайт клиента (работающий на компьютере моей компании) отправляется в веб-службу, когда веб-служба размещена в Интернете (очевидно, работает в IIS). Так что код в порядке - на мой взгляд :) - но создает проблему только тогда, когда веб-сервис работает локально.
Кто-нибудь знает какие-то настройки безопасности / настройки, которые могут быть причиной этого? Как я уже сказал, он отлично работал на нескольких персональных компьютерах без проблем.