这三个目标都是相同版本的.NET框架:4.6.1
要使Web服务工作并访问数据库,我必须将App.config文件从EntityFramework项目复制到Webservice项目。
在我决定从ASP.NET 5 RC1迁移到ASP.NET Core 1.0之前,一切正常。
迁移后,web.config出现在webservice项目根目录(除了wwwroot文件夹下的那个)之外,我遇到了here提到的错误,显然是因为现在我有两个配置文件( app.config和web.config),删除app.config的解决方案很有意义。
所以我将app.config中的所有部分复制到了web.config并删除了app.config,这解决了我的第一个问题,但现在每当我尝试使用DBContext
时,我就卡住了除了这个例外:
发生了'System.InvalidOperationException'类型的异常 EntityFramework.dll但未在用户代码中处理
附加信息:没有命名的连接字符串 可以在应用程序配置文件中找到“DBEntities”。
我注意到在发布应用程序之后,文件myApp.exe.config不再具有连接字符串了。我的问题很简单,如何让应用程序在web.config中查找连接字符串?!
答案 0 :(得分:4)
我遇到了完全相同的问题,答案是他的错误!在我的例子中,我的DbContext子类期望在app.config中有一个连接字符串,所以这是你必须在<configuration>
下提供的
<connectionStrings>
<add name="NameOfMyContext" connectionString="RemovedForSecurity" providerName="System.Data.SqlClient" />
</connectionStrings>
现在,构建并运行项目。进入/ bin / Debug /文件夹,直到找到yourappname.exe和yourappname.exe.config文件。检查yourappname.exe.config文件。这是您项目中各种xml配置文件的奇怪组合。确保您的连接字符串在那里。
我对该文件的体验非常糟糕。做一个&#34;清洁&#34;不会删除它,所以你可以在你删除项目中连接字符串的所有引用(即从app.config中删除它)的情况下,你的应用程序仍然有效,因为字符串仍然在奇怪的.exe.config中文件。
答案 1 :(得分:1)
必须在appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "< connection string value here >"
},
.. other stuff here
}
更多https://docs.asp.net/en/latest/fundamentals/configuration.html
答案 2 :(得分:1)
如果您有多个项目,请使用web.config文件将项目设置为启动项目。
答案 3 :(得分:0)
除了收到该异常之外的另一种情况是,在MVC项目的web.config中的连接字符串之后写了<clear>
标记。