Неверный запрос HTTP 400 при вызове операции службы WCF?

Когда я вызываю http: //localhost/TestService.svc/GetColors, я получаю неверный запрос Http (400). Когда я запускаю это в скрипте, я также получаю неверный запрос. Когда я вызываю службу через тестовый клиент wcf, она работает нормально. Что могло вызвать это?

Контракт на обслуживание:

[ServiceContract]
public interface ITestService
{
    [OperationContract]
    string GetColors();
}

Реализация ITestService:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class TestService : ITestService
{
    public List GetColors()
    {
        List colors= new List();

        colors.Add(new Color { Name = "Red", Code = "123" });
        colors.Add(new Color { Name = "Blue", Code = "323" });
        colors.Add(new Color { Name = "Green", Code = "3394" });

       return colors;
    }
}

Вот мой файл web.config:



   
       
   
   
      
         
            
               
                  
               
            
         
      
      
      
          
             
                 
                    
                 
             
             
             
                 
                     
                 
             
          
      
      
          
             
                
                   
                   
                
                
             
             
                
                
             
         
      
   
   
       
   

Когда я вызываю его, я просто открываю любой браузер и помещаю URL http: //localhost/TestService.svc/GetColors . Если я сделаю это через среду разработки, я увижу неверный запрос Http 400. Если я сделаю это через IIS, я просто увижу пустую страницу.

Вот InnerException:

System.Xml.XmlException: The body of the message cannot be read  
because it is empty.

Другой вопрос относительно моего CustomUserNameValidation:

Я реализую настраиваемую проверку с помощью метода проверки UserNamePasswordValidator, но когда я вызываю что-то вроде GetColors через клиент wcf, он не вызывает метод Validate. Единственный способ получить его для Invoke validate - это вызвать Validate (user, pass) непосредственно в GetColors. Я думал, что он будет вызываться автоматически при каждом обращении в службу поддержки, если вы правильно настроите его в web.config.

6
задан Xaisoft 13 May 2011 в 18:45
поделиться