WCF Web服务没有看到参数

时间:2014-01-27 11:46:49

标签: c# xml wcf web-services visual-studio-2012

我有一个WCF Web服务,它使用文件路径作为参数来验证XML数据。但是,当我调用它时,它完全忽略了参数。

web服务:

namespace MyApp.Validation.WebServices
{

    public class ValidateSurveyData : IValidateSurveyData
    {
        private ValidateSurveyDataResponse response = new ValidateSurveyDataResponse();

        public ValidateSurveyDataResponse ValidateXMLSurveyData(string XMLFile)
        {
            //Validation Code
            return response;
        }
    }
}

界面:

namespace MyApp.Validation.WebServices
{

[ServiceContract]
public interface IValidateSurveyData
{
     [OperationContract]
    ValidateSurveyDataResponse ValidateXMLSurveyData(string XMLFile);
}

[DataContract]
public class ValidateSurveyDataResponse
{
    [DataMember]
    [Description("XML Data Validation Errors")]
    public List<SurveyValidationError> DataValidationErrors { get; set; }

    public ValidateSurveyDataResponse()
    {
        DataValidationErrors = new List<SurveyValidationError>();
    }

}
}

在测试客户端中:

enter image description here

当我调试代码时XMLFile总是null。无奈之下,我尝试了C:\MyFile.xml@C:\MyFile.xml@"C:\MyFile.xml""C:\MyFile.xml"作为参数,但我始终保持不变,XMLFilenull。我错过了什么?

更新

好的感觉有点尴尬!问题不在于我所传递的数据服务。 C:\XmlFile.xml提供null参数,但C:\\XmlFile.xml给出正确的结果。

2 个答案:

答案 0 :(得分:0)

我认为你缺少ValidateSurveyDataResponse()方法中的参数,签名应该是这样的

public ValidateSurveyDataResponse(string XMLFile)

答案 1 :(得分:0)

在界面中的ValidateXMLSurveyData函数上方添加以下行。

[WebInvoke(Method = "POST", UriTemplate = "ValidateXMLSurveyData?value={XMLFile}")]

示例电话

http://localhost:5647/ValidateSurveyData.svc/ValidateXMLSurveyData?value="C:\MyFile.xml"