1

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);
    }
4

0 に答える 0