Я застрял в страшной проблеме "он работает локально".
Я использовал NuGet для установки WcfWebApi в Azure WebRole.Это веб-сайт WebForms.
Global.asax.cs Application_Start вызывает RegisterRoutes ().
RegisterRoutes () содержит: RouteTable.Routes.Add(new ServiceRoute("MySvc/TheService/", new WebServiceHostFactory(), typeof(Services.TheService)));
Интерфейс службы содержит:
[OperationContract]
[WebGet(UriTemplate = "/hello", BodyStyle = WebMessageBodyStyle.Bare)]
string Hello();
Реализующий класс просто возвращает "привет", поэтому, если я сейчас перейду к: http://localhost:49831/MySvc/TheService/hello - я получу "привет".ОК.
Если я сейчас опубликую в Azure и попробую один и тот же URL (очевидно, с xx.cloudapp.net/ и т. Д.), Я всегда получу 404.
Я использовал WcfWebApi ранее впрошлое - но всегда в WCfWebRole.Это имеет значение?Почему это работает локально?Это должно быть что-то связанное с Azure?
Любой совет приветствуется.Спасибо.
Edit: ну, согласно предложению @ Rajesh, я запустил Get_HostedServices, в котором перечислены URL-адреса размещенных сервисов, например: https://management.core.windows.net/mysubscriptionId/services/hostedservices/the-nameOfTheApp. Не совсем уверен, куда это идет...
В полном отчаянии я добавил файл .svc в папку в моем веб-приложении, а также все (ужасные) сервисы system.serviceModel и так далее, необходимые для настройки в стиле REST.Это все работает.
Я не хочу закрывать этот вопрос, потому что на него нет ответа как такового, и мне любопытно, что произошло.Спасибо всем за ответы до сих пор.Если я найду ответ, я обновлю.