Ошибка HTTP 500.19 - внутренняя ошибка сервера Запрошенная страница не может (WCF + REST + IIS7 + SSL) - PullRequest
2 голосов
/ 25 января 2011

У меня "модное" время, когда я пытаюсь получить службу WCF REST, размещенную на IIS с SSL.

Среда: я тестирую на коробке Windows7 с локальным сервером IIS. Я сам зарегистрировал сертификат на своей коробке разработчика и имею:

  1. Создан сайт в IIS с целью предоставления этой службы WCF через HTTPS.
  2. Создал приложение под этим сайтом и назвал его "api"
  3. Перешел на мой сайт в IIS
  4. Нажмите "Привязки ..." на панели "Действия" справа.
  5. Нажмите "Добавить"
  6. Выбрал «https» и выбрал мой сертификат.

Большая часть сантехники REST обрабатывается через расширения в WCF с использованием библиотеки WcfRestContrib. Хотя это было полезно с программной точки зрения, существует немного документации, когда что-то идет не так.

Ошибка, которую я сейчас получаю:

Error Summary

HTTP Error 500.19 - Internal Server Error The requested page cannot

быть доступным, потому что связанный Данные конфигурации для страницы недействительным. Подробная информация об ошибках Модуль IIS Web Core Обработчик уведомлений BeginRequest Not еще не определен код ошибки 0x8007000d Config Error Config Файл \? \ C: \ inetpub \ eMobile \ api \ web.config запрошенный URL https://172.xx.xx.254:443/api физический Путь C: \ inetpub \ eMobile \ api Logon Метод еще не определен Пользователь еще не определен

Config Source

   -1: 
    0:

Я действительно не уверен, что я здесь делаю неправильно. До сих пор я пытался обидеться делегированием функций для моего сайта, но это не сработало. Есть идеи? Что-нибудь выглядит странно в моем web.config?

Спасибо.

<?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="e1ConnectionString" connectionString="Data Source=USSV112;Initial Catalog=e1;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="e2ConnectionString" connectionString="Data Source=USSV112;Initial Catalog=e2;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  <system.web>
    <httpRuntime maxRequestLength="204800" executionTimeout="3600"/>
    <compilation debug="true" targetFramework="4.0">
    </compilation>
    <httpModules>
      <add name="ServiceAnonymityModule" type="WcfRestContrib.Web.ServiceAnonymityModule, WcfRestContrib, Version=1.0.6.107, Culture=neutral"/>
    </httpModules>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Users" stopProcessing="true">
          <match url="^rest/users/(.*)$"/>
          <action type="Rewrite" url="rest/Users.svc/{R:1}" />
        </rule>
      </rules>
    </rewrite>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <remove name="ServiceAnonymityModule"/>
      <add name="ServiceAnonymityModule" type="WcfRestContrib.Web.ServiceAnonymityModule, WcfRestContrib, Version=1.0.6.107, Culture=neutral"/>
    </modules>
  </system.webServer>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
        <listeners>
          <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="d:\Temp\WcfRestContribErrors.log" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="d:\Temp\WcfRestContribMessages.log" />
        </listeners>
      </source>
    </sources>
    <trace autoflush="true"/>
  </system.diagnostics>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <extensions>
      <behaviorExtensions>
        <add name="webAuthentication" type="WcfRestContrib.ServiceModel.Configuration.WebAuthentication.ConfigurationBehaviorElement, WcfRestContrib, Version=1.0.6.107, Culture=neutral, PublicKeyToken=89183999a8dc93b5" />
        <add name="errorHandler" type="WcfRestContrib.ServiceModel.Configuration.ErrorHandler.BehaviorElement, WcfRestContrib, Version=1.0.6.107, Culture=neutral, PublicKeyToken=89183999a8dc93b5" />
        <add name="webFormatter" type="WcfRestContrib.ServiceModel.Configuration.WebDispatchFormatter.ConfigurationBehaviorElement, WcfRestContrib, Version=1.0.6.107, Culture=neutral, PublicKeyToken=89183999a8dc93b5" />
        <add name="webErrorHandler" type="WcfRestContrib.ServiceModel.Configuration.WebErrorHandler.ConfigurationBehaviorElement, WcfRestContrib, Version=1.0.6.107, Culture=neutral, PublicKeyToken=89183999a8dc93b5" />
      </behaviorExtensions>
    </extensions>
    <bindings>
      <customBinding>
        <binding name="HttpStreamedRest">
          <httpTransport maxReceivedMessageSize="209715200" manualAddressing="true"/>
        </binding>
        <binding name="HttpsStreamedRest">
          <httpsTransport maxReceivedMessageSize="209715200"  manualAddressing="true"/>
        </binding>
      </customBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Rest">
          <webAuthentication authenticationHandlerType="WcfRestContrib.ServiceModel.Dispatcher.WebBasicAuthenticationHandler, WcfRestContrib"
            usernamePasswordValidatorType="Engage.Mobile.WebServices.Runtime.SecurityValidator, Engage.Mobile.WebServices"
            requireSecureTransport="false" source="E Mobile" />
          <webFormatter>
            <formatters defaultMimeType="application/json">
              <formatter type="WcfRestContrib.ServiceModel.Dispatcher.Formatters.PoxDataContract, WcfRestContrib"
                mimeTypes="application/xml,text/xml" />
              <formatter type="WcfRestContrib.ServiceModel.Dispatcher.Formatters.DataContractJson, WcfRestContrib"
                mimeTypes="application/json" />
              <formatter type="WcfRestContrib.ServiceModel.Dispatcher.Formatters.FormUrlEncoded, WcfRestContrib"
                mimeTypes="application/x-www-form-urlencoded" />
            </formatters>
          </webFormatter>
          <errorHandler errorHandlerType="WcfRestContrib.ServiceModel.Web.WebErrorHandler, WcfRestContrib" />
          <webErrorHandler logHandlerType="Engage.Mobile.WebServices.Runtime.LogHandler, Engage.Mobile.WebServices" returnRawException="true" exceptionDataContractType="" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Ответы [ 3 ]

1 голос
/ 08 марта 2013

Я опубликовал аналогичный ответ в этой теме , и в SO есть похожие ответы на эти ошибки.

В вашем файле web.config есть элемент перезаписи, без перезаписи URLУстановленный IIS не распознает этот элемент и выдает ошибку, которую вы видите в данный момент.Установите URL Rewrite , и это должно работать.

1 голос
/ 26 января 2011

Очень похоже на это Тема

Предложенный ответ:

  1. Щелкните правой кнопкой мыши папку, в которой расположен ваш сайт: "C: \ Users \ NAME \ SiteName "и выбрав Свойства
  2. Перейдите на вкладку Безопасность и нажмите Правка
  3. Добавить .. и введите" IIS_IUSRS "
0 голосов
/ 24 ноября 2011

Вы можете попытаться включить трассировку в своей службе, чтобы увидеть, достигает ли запрос служба или происходит сбой в самой IIS. Если он достигает вашего сервиса, то трассировка обнаружит точную ошибку в том месте, где он терпит неудачу. Чтобы включить трассировку, перейдите по этой ссылке

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