public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
private static void RegisterRoutes(ICollection<RouteBase> routes)
{
routes.Add(new ServiceRoute("Calculator", new WebServiceHostFactory(), typeof(CalculatorService)));
}
}
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true">
<serviceActivations>
<add factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="Calculator.svc"
service="MyServer.CalculatorService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
Когда я делаю это и перехожу на http://localhost/MyApp/Calculator.svc, я получаю сообщение об ошибке, в котором говорится, что мне нужна AspNetCompatability.Поэтому я добавил [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
, и это работает, единственное, что меня беспокоит, - я хочу, чтобы мой сервис использовал альтернативные средства транспорта (не только http), если я хочу использовать альтернативные привязки не-http.
Странно то, что если я не установил атрибут «Разрешено» или «Требуется», то при перестроении страницы я получаю эту ошибку.После того, как я получил эту ошибку, я нажал «Обновить», и все в порядке.И это не просто, если я запрашиваю svc через веб-браузер, но если у меня есть приложение, оно аварийно завершает работу при первом подключении (если сервер был перезапущен) и после этого работает.Что дает?