Адрес конечной точки WCF не работает - PullRequest
0 голосов
/ 22 июля 2011

Может кто-нибудь сказать мне, что я делаю не так ниже? Я боролся с этим часами и считаю, что у меня все правильно, но я должен что-то упустить. В основном для каждой услуги, которую я имею, я хотел бы иметь адреса. Эти службы должны быть размещены в IIS. Я тестировал с IIS Express. Я ожидаю, что я получу доступ к сервисам в /AuthService.svc/soap и /AuthService.svc/json, но, похоже, это не работает. Ниже приведен конфиг, который я использую.

<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
    <behaviors>
      <serviceBehaviors>
        <behavior name="DefaultServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="jsonBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="SecureBinding" allowCookies="true" maxReceivedMessageSize="67108864">
          <readerQuotas maxArrayLength="67108864"/>
          <security mode="Transport"/>
        </binding>
      </basicHttpBinding>
      <webHttpBinding>
        <binding name="SecureBinding" allowCookies="true" maxReceivedMessageSize="67108864">
          <readerQuotas maxArrayLength="67108864"/>
          <security mode="Transport"/>
        </binding>
      </webHttpBinding>
      </bindings>
      <services>
        <service name="AuthService" behaviorConfiguration="DefaultServiceBehavior">
          <endpoint address="soap"
                  binding="basicHttpBinding"
                  bindingConfiguration="SecureBinding" 
                  contract="FormsAuthenticatingServices.Interfaces.IAuthService" />
          <endpoint address="json"
                  binding="webHttpBinding"
                  bindingConfiguration="SecureBinding"
                  behaviorConfiguration="jsonBehavior"
                  contract="FormsAuthenticatingServices.Interfaces.IAuthService" />
        </service>
        <service name="DataService" behaviorConfiguration="DefaultServiceBehavior">
          <endpoint address="soap"
                  binding="basicHttpBinding"
                  bindingConfiguration="SecureBinding"
                  contract="FormsAuthenticatingServices.Interfaces.IDataService" />
          <endpoint address="json"
                  binding="webHttpBinding"
                  bindingConfiguration="SecureBinding"
                  behaviorConfiguration="jsonBehavior"
                  contract="FormsAuthenticatingServices.Interfaces.IDataService" />
        </service>
      </services>
    </system.serviceModel>

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Вы должны получить метаданные на основе SOAP в /authservice.svc?wsdl и операции на основе REST, начиная с URI /authservice.svc/json

Вы ничего не увидите в браузере, нажав / authservice.svc / soap, поскольку SOAP предполагает, что сообщения XML будут отправлены в службу, тогда как браузер выполняет GET.Чтобы использовать службу SOAP, создайте клиентский проект и создайте прокси-сервер, используя ссылку «Добавить службу», указывающую на WSDL

1 голос
/ 22 июля 2011

В дополнение к ответу Ричарда, убедитесь, что атрибут name в элементе является полностью определенным именем класса обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...