Несоответствие привязки клиента / службы после добавления [FaultContract] в интерфейс
Я создал веб-сервис WCF в.net/ C#. Я также создал тестовое клиентское приложение. все отлично работает Теперь я хотел добавить пользовательское исключение
[DataContract]
[Serializable]
public class MyException : Exception
{
public MyException(string message)
: base()
{
}
}
это брошено здесь:
if{ dosomth(); }
else{
MyException mE = new MyException("my error occured");
throw new FaultException<myException>(mE);
}
все хорошо, пока здесь.
Теперь я хочу добавить FaultContract к интерфейсу:
[OperationContract]
[FaultContract(typeof(MyException))]
Double myMethod(String x, Double y, String z);
И теперь, когда я пытаюсь обновить ссылку на службу в моем клиентском приложении после добавления [FaultContract] к интерфейсу, я получаю эту ошибку:
There was an error downloading 'http://localhost:51104/MyService.svc/_vti_bin/ListData.svc/$metadata'.
The request failed with HTTP status 400:Bad Request.
Metadata contains a reference that cannot be resolved:
'http://localhost:51104/MyService.svc'.
Content Type application/soap+xml; charset=utf-8 was not supported by service 'http://localhost:51104/MyService.svc'. The client and service bindings my be mismatched.
The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'...
Почему добавление [FaultContract] создает несоответствие и что мне нужно настроить, чтобы решить эту проблему? Что-то не так с FaultContract или это просто проблема с конфигурацией? (Второе заставило бы меня задуматься, почему это работает без FaultContract)
Я использую.NET 4.5.
вот мой web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
The following attributes can be set on the <httpRuntime> tag.
<system.Web>
<httpRuntime targetFramework="4.5" />
</system.Web>
-->
<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime/>
<pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
</configuration>
и мои приложения App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:51104/MyService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="MyService.IMyService" name="BasicHttpBinding_IMyService" />
</client>
</system.serviceModel>
</configuration>