MVC+EF+Oracle运行时 “System.ArgumentException”异常

安装完 Oracle Developer Tools for Visual Studio,配置完EF后运行出现:


“System.ArgumentException”类型的异常在 System.Data.Entity.dll 中发生,但未在用户代码中进行处理
其他信息: 指定的存储区提供程序在配置中找不到,或者无效。

或 找不到请求的 .Net Framework Data Provider。可能没有安装。


引发异常的原因是因为machine.config文件中没有配置oracle的程序映射。

machine.config:Visual Studio的配置文件,位于C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

原因:

首先分析连接字符串 

  <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/EF
### 关于 `System.ArgumentException` 的原因分析 #### 一、异常定义 `System.ArgumentException` 是一种常见的 .NET 异常,表示传递给方法的参数无效或不符合预期条件。该异常通常发生在调用方提供了非法参数的情况下。 --- #### 二、具体场景下的原因解析 1. **找不到请求的 .NET Framework 数据提供程序** 当尝试访问数据库,如果指定的数据提供程序未正确注册或缺失,则会抛出此异常[^1]。这通常是由于缺少必要的驱动程序或配置文件中的连接字符串设置不当引起的。 2. **无法找到字体“?”** 如果应用程序试图加载不存在或不可用的字体资源,也会触发此类异常[^2]。这种情况下,可能是字体名称拼写错误或者目标环境中确实缺乏所需的字体文件。 3. **Entity Framework 创建 MySQL 数据库报错** 使用 Entity Framework 连接 MySQL 数据库,“不支持关键字: 'port'”这样的错误表明连接字符串存在问题[^3]。常见原因是连接字符串格式不对或是某些特定关键词被误用。 4. **未经处理的异常在 mscorlib.dll发生** 若应用依赖外部组件而这些组件未能正常初始化(比如缺少必要配置),同样可能导致 `System.ArgumentException` 被抛出[^4]。此需仔细检查项目所使用的第三方库及其版本兼容性。 --- #### 三、解决方案建议 针对上述提到的各种情况分别给出如下解决办法: - 对于数据源相关问题: - 确认已安装对应的数据访问组件; - 验证 app.config/web.config 文件内的 connectionStrings 设置无误; 示例码片段展示如何正确书写 SQL Server 的连接串: ```xml <connectionStrings> <add name="MyDbContext" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient"/> </connectionStrings> ``` - 字体方面的问题可以通过以下方式规避: - 明确指明所需字体全名而非简称; - 将自定义字体嵌入到应用程序内部作为资源的一部分发布出去; - EF操作MySQL失败情形下调整措施包括但不限于: - 更新至最新版官方推荐 NuGet 包(MySQL Connector/Net); - 修改连接字符串去掉多余字段如端口号(port),仅保留必需项; - 解决因缺少配置引发的崩溃状况则应做到: - 完整复制生产环境需要的所有dlls; - 双重确认所有引用路径均指向实际存在的位置; --- ### 总结 通过以上详尽阐述可以看出, 处理 `System.ArgumentException` 主要围绕以下几个核心要点展开:核实输入参数合法性、保障基础架构健全以及遵循最佳实践编码习惯.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值