Chr☆s Kwok 的技术笔记

.NET, C#, WPF, WCF, WF, .NetCore & LINQ ... I know how it works because I know why it works ...

博客园 首页 新随笔 订阅 管理

IIS站点配置WCF完成,进行浏览器中浏览时,报错:HTTP错误404.3-Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加MIME映射。

经查询网上有解决方案如下:
1、IIS程序安装问题。

解决步骤如下:

控制面板-》打开或关闭windows功能-》Internet信息服务-》万维网服务-》应用程序开发功能。
勾选上“.net扩展性”和“ASP.NET”,保存后,重启IIS服务器即可。
 
 其次,勾选上Windows Process Activation Service
 
最后,还需勾选上Microsoft .NET Framework 3.5.1(如有其他版本也勾选上,如 4.7):
 
 
然后 找到Visual Studio  命令提示工具中。然后用管理员身份运行,输入命令 
aspnet_regiis -i
如果可以成功显示 ASP.NET 安装完毕 
就说明 安装成功!
 
简直二逼,如果真是这样导致的问题,只能说明安装IIS的时候没脑子,或者系统自带根本就没去检查IIS安装是否正常。
2、IIS站点IIS配置下的处理程序映射有问题。
后缀格式列表中是否有.svc,如果不存在则是*.svc 处理映射未配置导致此问题。
解决方法,以管理员身份进入命令行模式,运行:
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r -y
-r         - 重新安装此版本的 Windows Communication Foundation,
              并更新 IIS 元数据库根处的脚本映射和根以下的所有
              脚本映射。无论原始版本是什么,都将现有的脚本映射
              升级到此版本。
-y         - 在卸载或重新安装组件之前不要求确认。
 
-------------------------------
一般是在安装 Windows Communication Foundation (WCF) 之后安装了 IIS造成,运行以上命令将在 IIS 中注册所需的脚本映射。
这时将确保在MIME中将 .svc 文件类型映射到 aspnet_isapi.dll。
好吧,我的就是这个问题。执行完成解决问题。
 
如果 出现 未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.ServiceModel.Activation.HttpModule”。 

原因:这是因为先安装了 .NET Framework 4,随后启用了 .NET Framework 3.5 WCF HTTP 激活,则会发生此错误。

解决办法:
微软官方对该问题也作了解答:http://msdn.microsoft.com/zh-cn/library/aa751852.aspx
只需要已管理员用户在cmd中运行 C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis.exe -i -enable 即可。

3、浏览SVC,如果报如下错误(未能加载文件或程序集"Oracle.ManagedDataAccess"或它的某一个依赖项):

 

原因:这是因为先未安装了 ODP.NET(Oracle驱动),则会发生此错误。

 

解决办法:安装 Oracle 全托管驱动(推荐使用oracle.ManagedDataAccess.dll(oracle.ManagedDataAccess.Client)全托管驱动。实际使用发现,Oracle全托管驱动对32位和64位oracle数据库具有很好的连接兼容性)

 

另外,出现如下情况:
“/CoreService”应用程序中的服务器错误。


Schema specified is not valid. Errors:
JetSun.DataModel.CIS.Oracle.EdmActSite.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'Oracle.ManagedDataAccess.Client'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
是由于Web.config文件没配置好,正确内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <configSections>
    <section name="entityFramework"  type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"  requirePermission="false"/>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
  </configSections>
 
  <oracle.manageddataaccess.client>
    <version number="4.121.2.0">
      <edmMappings>
        <edmMapping dataType="number">
          <add name="bool" precision="1" />
        </edmMapping>
      </edmMappings>
    </version>
  </oracle.manageddataaccess.client>
 
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
      <provider invariantName="Oracle.ManagedDataAccess.Client"
        type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </providers>
  </entityFramework>
</configuration>

 完整的web.config文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <configSections> 
    <section name="entityFramework"
      type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
      requirePermission="false"/>
    <section name="oracle.manageddataaccess.client"
      type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
  </configSections>

 
    <system.webServer>
        <defaultDocument>
            <files>
                <add value="Default.html" />
            </files>
        </defaultDocument>
    </system.webServer>

<connectionStrings>
</connectionStrings>

  <system.diagnostics >
    <sharedListeners>
      <add name="sharedListener"
           type="System.Diagnostics.XmlWriterTraceListener"
           initializeData="c:/temp/trace.svclog" />
    </sharedListeners>
    <sources>
      <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing" >
        <listeners>
          <add name="sharedListener" />
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
        <listeners>
          <add name="sharedListener" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
  


  <oracle.manageddataaccess.client>
    <version number="4.121.2.0">
      <edmMappings>
        <edmMapping dataType="number">
          <add name="bool" precision="1" />
        </edmMapping>
      </edmMappings>
    </version>
  </oracle.manageddataaccess.client>

   <runtime>
      <gcServer enabled="true"/>
   </runtime>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
      <provider invariantName="Oracle.ManagedDataAccess.Client"
        type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
    </providers>
  </entityFramework>

</configuration>
Web.config

 

posted on 2020-12-23 16:43  Chr☆s  阅读(916)  评论(0编辑  收藏  举报