У меня есть существующее веб-приложение ASP.NET. Это веб-приложение ASP.NET использует JQuery для предоставления пользователям богатых возможностей Этот пользовательский интерфейс взаимодействует с сервером через некоторые службы WCF. Пример сервиса выглядит следующим образом:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = false)]
public class myService : ImyService
{
public bool SomeMethod(string parameter1, string parameter2)
{
try
{
return true;
}
catch (Exception ex)
{
return false;
}
}
}
Теперь я хочу предоставить эту услугу iPhone и приложению Windows Phone 7. В попытке сделать это я настроил службу следующим образом:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="myServiceBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="myService">
<endpoint address="" behaviorConfiguration="myServiceBehavior"
binding="webHttpBinding" contract="ImyService" />
</service>
</services>
</system.serviceModel>
Служба работает с вызовами JQuery в моем веб-приложении ASP.NET. Я не начал работать над клиентом iPhone. Но, когда я пытаюсь открыть этот сервис для своего клиента WP7, у меня возникают проблемы. В настоящее время, когда я запускаю свое приложение WP7, я получаю сообщение об ошибке:
KeyNotFoundException
Если я изменю привязку в файле конфигурации на «basicHttpBinding», я не смогу ссылаться на службу в Visual Studio. Я получаю сообщение об ошибке:
The endpoint at 'http://machine:80/services/myService.svc' does not have a Binding with the None MessageVersion. 'System.ServiceModel.Description.WebScriptEnablingBehavior' is only intended for use with WebHttpBinding or similar bindings.
Тьфу. Как мне двигаться вперед? Я думал, что WCF был разработан, чтобы сделать это проще. Но я чувствую, что застреваю, делая что-то относительно простое.
Спасибо за вашу помощь!