Я следовал этому, чтобы создать веб-службу json в asp.net 3.5:
Создание служб WCF с поддержкой JSON в .NET 3.5 (archive.org)
(Находился по адресу: http://www.pluralsight.com/community/blogs/fritz/archive/2008/01/31/50121.aspx)
Он отлично работает, если я хочу использовать его для внутреннего использования, но поскольку я хочу подключиться к нему извне, я получил сообщение об ошибке: «Публикация метаданных для этой службы в настоящее время отключена».
Поэтому я попытался включить его, но теперь получаю сообщение об ошибке: «Невозможно добавить расширение поведения serviceMetadata в поведение конечной точки MyServiceAspNetAjaxBehavior, поскольку базовый тип поведения не реализует интерфейс IEndpointBehavior».
Я знаю, что делаю что-то не так в web.config, просто не могу понять, что я делаю не так? Спасибо!
Это в web.config:
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="MyServiceAspNetAjaxBehavior">
<enableWebScript />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</endpointBehaviors>
</behaviors>
//Needed to add this to be able to use the web service on my shared host
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://www.domain.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<services>
<service name="MyService">
<endpoint address="" behaviorConfiguration="MyServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="MyService" />
<endpoint contract="MyService" binding="mexHttpBinding" address="mex" />
</service>
</services>
In MyService.cs:
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public string GetForecast(string str)
{
return "Hello World";
}
}
В MyService.svc
<%@ ServiceHost Language="C#" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>