Если я попытаюсь добавить ссылку на службу в мое приложение с пустыми окнами, у меня есть два предупреждения/ошибки.Приложение для Windows 8 Store и WCF
Услуга ФОС службы с файлом ServiceName.svc, я видел, что некоторые услуги остроумие ServiceName.asmx. Это причина? Нужен ли мне сервис с файлом * .asmx?
Я действительно смущен, потому что в Интернете есть слишком много вещей и ресурсов для этой темы. Также сбивает с толку то, что System.ServiceModel.Channels.TransportSecurityBindingElement не поддерживается, но я никогда не использовал это. Не в web.config или в коде в качестве конфигурации службы.
Вот моя конфигурация службы в web.config:
<system.web>
<compilation targetFramework="4.5" debug="true"/>
<httpRuntime/>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>
<system.serviceModel>
<diagnostics>
<messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"/>
</diagnostics>
<client/>
<services>
<service behaviorConfiguration="basicHttpBehavior" name="e3kConnector.E3KConnectorService">
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<endpoint
address=""
binding="wsHttpBinding"
bindingConfiguration="wsHttpBinding"
name="wsHttpEndpoint"
bindingName=""
contract="Service.MyService" />
<endpoint
address="Soap"
binding="basicHttpBinding"
bindingConfiguration="basicHttpBinding"
name="basicHttpBinding"
bindingName=""
contract="Service.MyService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:50282/Service.svc" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBinding" allowCookies="true">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" proxyCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
<wsHttpBinding>
<binding name="wsHttpBinding" allowCookies="true">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="basicHttpBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="e3kConnector.App_Data.Security.CustomUserNameValidator,e3kConnector"/>
<serviceCertificate findValue="tempCert" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/>
</serviceCredentials>
<serviceAuthorization principalPermissionMode="Custom">
<authorizationPolicies>
<add policyType="e3kConnector.App_Data.Security.AuthorizationPolicy, e3kConnector"/>
</authorizationPolicies>
</serviceAuthorization>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="false"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
В тесте я добавил эту tempConverter, но это работает. (Да, я знаю, что это файл asmx.) Я знаю также разницу между svc и asmx, но вот почему я запутался. Оба поддерживают SOAP, поэтому я до сих пор не понимаю, почему это не сработает. Может быть, это очень просто?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Забудьте о ASMX - это .net 1.1 и 2.0 услуги и не WCF. Ничего 3.0 и выше не следует использовать svc –
Хорошо, спасибо. Я использую .net 4.5 теперь вопрос, как я могу заставить его работать: D – Patrick
Так вы получаете проблему, когда пытаетесь добавить ссылку на службу? Отличается ли сервис? –