У меня есть собственный хост WebServiceHost
, определенный так:
var baseWebHttpBindingBase = "http://localhost:8085/MyService");
var wsEndPoint = new EndpointAddress(baseWebHttpBindingBase);
var binding = new WebHttpBinding();
wsHost = new WebServiceHost(lsWsService, new Uri(baseWebHttpBindingBase));
wsHost.Faulted += new EventHandler(wsHost_Faulted);
wsHost.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(wsHost_UnknownMessageReceived);
ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
sdb.IncludeExceptionDetailInFaults = true;
// Mex endpoint
ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
mexBehavior.HttpGetEnabled = true;
wsHost.Description.Behaviors.Add(mexBehavior);
wsHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), baseWebHttpBindingBase + "mex");
wsHost.Open();
У меня есть OperationContract
, определенный:
[OperationContract]
[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, Method = "PUT", UriTemplate = "/handShake")]
public ConfigSettings handShake(ClientInformationDto clientInfo) {
var configSettings = new ConfigSettings();
// set configSettings values;
return configSettings;
}
ConfigSettings имеет некоторую ошибку,свойства, в основном определяемые как строки и целые числа.Однако есть одно свойство, которое называется complexClasses типа List<ComplexClass>
- если complexClasses имеет значение null, тогда клиент может нормально использовать веб-сервис.Однако, если я заполняю complexClasses, попытка использовать веб-сервис никогда не завершается - просмотр его в Fiddler просто показывает обобщенный ReadResponse() failed: The server did not return a response for this request.
Когда я отлаживаю код, я получаю оператор return и когда я делаюПоследний шаг, Fiddler сообщает об ошибке выше.
Я знаю, что проблема связана с моим ComplexClass в configSettings.Служба продолжает работать просто отлично, и даже после включения функции Studio «разбить на все исключения» ничего не сломается.Есть ли способ отладки того, что происходит после возврата (скорее всего, на этапе сериализации), из-за которого моя служба не может что-либо вернуть?