执行数据库链接报这个错误初始值设定项引发异常,但是没找到原因,然后通过打印InnerException.ToString()打印出来报错原因:
System.Configuration.ConfigurationErrorsException:
项“pdb_nsnwy”已添加。 (F:\root\LIC_BMAPI\WebBMAPI\web.config line 14)
配置文件Web.Config如下:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebBMAPI-20220825092632.mdf;Initial Catalog=aspnet-WebBMAPI-20220825092632;Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="pmsdb_pri" connectionString="Data Source=pmsdb_pri;User Id=gzt_ts;Password=Gzt.ts2022;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
<add name="pdb_nsnwy" connectionString="Data Source=pdb_nsnwy;User Id=miduser;Password=miduser_2015;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
<add name="gh_srv_sde" connectionString="Data Source=gh_srv;User Id=sde;Password=Xstg4k8o;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
</connectionStrings>
在开发环境执行一点问题没有,部署到服务器就报错
然后说只要这样配置就行了:多了一个Clear
<connectionStrings>
<clear/>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebBMAPI-20220825092632.mdf;Initial Catalog=aspnet-WebBMAPI-20220825092632;Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="pmsdb_pri" connectionString="Data Source=pmsdb_pri;User Id=gzt_ts;Password=Gzt.ts2022;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
<add name="pdb_nsnwy" connectionString="Data Source=pdb_nsnwy;User Id=miduser;Password=miduser_2015;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
<add name="gh_srv_sde" connectionString="Data Source=gh_srv;User Id=sde;Password=Xstg4k8o;Pooling=true;min pool size=1; max pool size=50;" providerName="Oracle.DataAccess.Client"/>
</connectionStrings>
总结:
1,配置文件也存在缓存的问题,多次获取配置文件配置会出现这个问题
2,这时候先清除再读取可以避免这个问题
3,Exception可能不会暴露真实的问题,没办法定位,这时候需要InnerException.ToString()打印具体问题所在,才可以很好的出来解决问题