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 - 在卸载或重新安装组件之前不要求确认。
"%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”。
Schema specified is not valid. Errors:
Web.config
原因:这是因为先安装了 .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>