WCFのデバッグ-そして私の人生の間、私のサービスメソッドがhttpエラー400を返す理由を理解できません。DLLはIISにデプロイされ、SVCはそれを指します-DLLの他のすべてのサービスメソッドが利用可能であり、正しいデータ。IISのプロセスにデバッガーを接続していて、他のすべてのサービスメソッドをステップスルーできますが、何らかの理由で、デバッガーはこのメソッドの呼び出しをキャッチしません。シンボルが正しくロードされます。私はすべての例外を破ろうとしました-それは何らかの理由でGetCustomInquiries_POSTで停止したくありません、そしてサービスはまだ利用可能であり、戻ったときにhttpエラー400を示します。何か案は?私はどこかでそれを太った指で触れたことを知っています。
私は次の契約でサービスを提供しています:
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
Stream GetCustomInquiries_POST();
そして、次の実装:
public Stream GetCustomInquiries_POST()
{
// Returns a list of of business objects
CustomInquiries customInquiries = WebSupport.DocumentInquiry.GetCustomInquiries();
// Create an empty list of WCFCustomInquiry, which is a data
// contract that exposes certain properties of a customInquiry.
// This list will be filled with all of the saved inquiries
List<WCFCustomInquiry> customInquiriesToReturn = new List<WCFCustomInquiry>();
// For each of the inquiries that were returned.
foreach (CustomInquiry customInquiry in customInquiries)
{
// Create a list of properties exposed via the web service
List<WCFProperty> savedProperties = new List<WCFProperty>();
// For each of the properties in the saved inquiry, cast it to a WCFProperty,
// which is added to the list of properties exposed to the web service
foreach (InquiryPropertyValue testProperty in customInquiry.SearchCriteria.Properties.Values)
{
WCFProperty savedProperty = new WCFProperty(testProperty.PropertyID, testProperty.Prompt, testProperty.DataType);
savedProperty.inquirySearchText = testProperty.Value.ToString();
savedProperty.inquirySearchType = testProperty.SearchType;
savedProperties.Add(savedProperty);
}
// create a new webInquiryCriteria instance, which exposes the listed
// properties to the web service.
WCFInquiryCriteria webInquiryCriteria = new WCFInquiryCriteria(customInquiry.TopLevelFolders, customInquiry.DocTypes, customInquiry.SearchCriteria.DocumentTypes, customInquiry.SearchCriteria.TopLevelFolders, savedProperties, "", "", false, null, null);
// Created an instance of the data-contract, using the members
// to be exposed from the inquiry
WCFCustomInquiry customInquiryToReturn = new WCFCustomInquiry(customInquiry.CustomInquiryId, customInquiry.Name, customInquiry.Description, customInquiry.AutoRun, customInquiry.DocTypes, customInquiry.TopLevelFolders, webInquiryCriteria, customInquiry.UserSuppliedProperties);
// Add that new instance to the list that
customInquiriesToReturn.Add(customInquiryToReturn);
}
return WebSupport.JSONSerializationHelper.GetJSONStreamToReturn(customInquiriesToReturn);
}