2013-04-25 1 views
-1

Этот простой WebserviceHost работает, когда я его компилирую для .NET3.5, но не в 4.0 Я обращаюсь к нему из своего браузера с URL-адресом http: // mycomputer: 8081/SVC/HelloWorldWebServiceHost возвращает 405 не разрешено в GET в .NET4.0

Версия 3.5 возвращает строку «Hello World! @ < времени >», но версия 4.0 возвращается - 405 не разрешено.

Кто-нибудь знает, почему?

Я использую .net4.0 на 64-битной машине Win7 SP1

using System; 
using System.Web.Services; 
using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Collections.Generic; 
using System.Runtime.Serialization; 

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "HelloWorld")] 
    string HellWorld(); 
} 

public class MyService : IMyService 
{ 
    public string HellWorld() 
    { 
     return "Hello World! @ " + DateTime.Now.ToString("s"); 
    } 
} 

public class MyClass 
{ 

    public static void Main() 
    { 
     string myComputer = "myComputer"; 
     string mySvcUri = "http://" + myComputer + ":8081/SVC"; 
     Uri[] baseAddresses = new Uri[] { new Uri(mySvcUri) }; 

     WebServiceHost hostVisits = new WebServiceHost(typeof(MyService), baseAddresses); 
     BasicHttpBinding binding = new BasicHttpBinding(); 
     hostVisits.AddServiceEndpoint(typeof(IMyService), binding, "MyService"); 

     hostVisits.Open(); 

     Console.WriteLine("Service host started, press any key to exit"); 
     Console.ReadKey(); 
    } 
} 

Ничто не написано в журнал событий.

+0

Интересно, что это работает на виртуальной машине с windowsXP/.net4.0, которую я также использую для разработки. – mortb

ответ

1

Просто удалите эти две линии. Это будет работать.

BasicHttpBinding binding = new BasicHttpBinding(); 
hostVisits.AddServiceEndpoint(typeof(IMyService), binding, "MyService"); 
+0

Он делает. Ты знаешь почему? Мой код выше был извлечен из проекта, написанного кем-то другим, который я поддерживаю, поэтому я точно не знаю, почему это не работает ... – mortb

Смежные вопросы