首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >HTTP错误500.19 -请求的页面不能内部服务器错误(WCF + REST + IIS7 + SSL)

HTTP错误500.19 -请求的页面不能内部服务器错误(WCF + REST + IIS7 + SSL)
EN

Stack Overflow用户
提问于 2011-01-25 14:54:06
回答 3查看 14.4K关注 0票数 2

我有一个“花花公子”的时间试图使我的WCF REST服务托管在IIS上的SSL。

环境:我正在用本地Windows7服务器在一个IIS上进行测试。我已经在我的邮箱上注册了一份证书,并且:

  1. 在IIS中创建站点,以便通过HTTPS公开此WCF服务。
  2. 在此站点下创建了一个应用程序,并将其命名为"api“。
  3. 导航到IIS中的我的站点
  4. 点击“绑定”在右侧的Actions面板中。
  5. 点击‘加法’
  6. 选择“https”并选择“我的证书”。

其他许多管道是通过使用WcfRestContrib库的WCF中的扩展来处理的。虽然从编程的角度来看,这是很有用的,但是当某些地方出错时,文档的方式却很少。

我目前遇到的错误是:

错误摘要HTTP错误500.19 -请求的页面不能内部服务器错误 访问该页的相关配置数据无效。详细错误信息模块IIS通知BeginRequest Handler尚未确定错误代码0x8007000d Config文件\?\C:\inetpub\eMobile\api\web.config请求URL https://172.xx.xx.254:443/api物理路径C:\inetpub\eMobile\api登录方法尚未确定登录用户尚未确定 配置源-1: 0:

我真不知道我在这里做错了什么。到目前为止,我已经尝试过对我的站点的特性委派表示不满,但这并不奏效。有什么想法吗?在我的web.config里有什么奇怪的地方吗?

谢谢。

代码语言:javascript
代码运行次数:0
运行
复制
<?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>
EN

回答 3

Stack Overflow用户

发布于 2011-01-26 08:16:35

它看起来很像这个线程

建议的答案是

  1. 右键单击站点所在的文件夹:"C:\Users\NAME\SiteName“并选择Properties
  2. 选择Security选项卡并单击Edit
  3. 添加..并键入"IIS_IUSRS“
票数 2
EN

Stack Overflow用户

发布于 2013-03-08 15:20:01

我在这条线中发布了类似的答案,对于这些错误,也有类似的答案。

您的web.config中有一个重写元素,如果未安装URL重写,IIS将不识别该元素,并抛出当前看到的错误。安装URL重写,这应该是可行的。

票数 1
EN

Stack Overflow用户

发布于 2011-11-24 09:49:46

您可以尝试在服务上启用跟踪,以查看请求是否到达服务或IIS本身是否失败。如果它到达了您的服务,那么跟踪将获取它失败位置的确切错误。要启用跟踪,请遵循以下链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4794918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档